留言板和jq轮播图

  1 <!DOCTYPE html>
  2 <html lang="zh">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>留言板</title>
  6     <style type="text/css">
  7         body, ul {
  8             margin: 0;
  9             padding: 0;
 10         }
 11         ul {
 12             list-style: none;
 13         }
 14     </style>
 15     <style type="text/css">
 16         .wrap {
 17             width: 600px;
 18             height: 165px;
 19             margin: 20px auto;
 20             border-radius: 4px;
 21             border: 1px solid #ddd;
 22             padding: 0 10px;
 23         }
 24 
 25         .wrap-head {
 26             width: 100%;
 27             height: 24px;
 28             padding-top: 4px;
 29             overflow: hidden;
 30         }
 31 
 32         .head-logo {
 33             width: 40%;
 34             float: left;
 35         }
 36 
 37         .head-logo img {
 38             width: 30px;
 39             height: 30px;
 40         }
 41 
 42         .head-txt {
 43             padding: 4px 0;
 44             width: 60%;
 45             float: right;
 46         }
 47 
 48         .head-txt a {
 49             font-size: 12px;
 50             color: #eb7350;
 51             text-decoration: none;
 52         }
 53         .title-txt.title {
 54             text-align: right;
 55             color: black;
 56             display: block;
 57             width: 100%;
 58         }
 59     </style>
 60     <style type="text/css">
 61         .main-txt {
 62             border: 1px solid #ccc;
 63             width: 98%;
 64             height: 68px;
 65             margin: 4px 0 0;
 66             padding: 5px;
 67             box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.15) inset;
 68         }
 69 
 70         .main-txt textarea {
 71             border: none;
 72             width: 100%;
 73             height: 66px;
 74             outline: none;
 75             resize: none;
 76             color: #333;
 77         }
 78         .main-txt.outline {
 79             outline: 2px orange solid;
 80         }
 81     </style>
 82     <style type="text/css">
 83         .warp-footer {
 84             width: 100%;
 85             height: 40px;
 86             margin: 6px 0;
 87             overflow: hidden;
 88         }
 89 
 90         .warp-icon-cont {
 91             width: 65%;
 92             float: left;
 93             margin-top: 10px;
 94         }
 95 
 96         .warp-icon-cont ul li {
 97             display: inline-block;
 98             margin-right: 15px;
 99             cursor: pointer;
100         }
101 
102         .warp-icon-cont a {
103             font-size: 12px;
104             color: #333;
105             text-decoration: none;
106             height: 20px;
107             margin-left: 5px;
108             display: block;
109             width: 25px;
110             float: right;
111             line-height: 20px;
112         }
113 
114         .warp-icon-cont a:hover {
115             color: #eb7350;
116         }
117 
118         .warp-icon-cont img {
119             width: 20px;
120             height: 20px;
121         }
122 
123         .warp-footer-btns {
124             width: 35%;
125             float: right;
126             overflow: hidden;
127             margin-top: 3px;
128         }
129 
130         .release-btn {
131             width: 80px;
132             height: 28px;
133             float: right;
134             background-color: #ffc09f;
135             border: 4px solid #fbbd9e;
136             cursor: pointer;
137             border-radius: 2px;
138         }
139 
140         .release-btn a {
141             display: block;
142             color: #fff;
143             width: 80px;
144             height: 28px;
145             line-height: 28px;
146             text-align: center;
147             text-decoration: none;
148             font-size: 15px;
149         }
150     </style>
151     <style type="text/css">
152         .show {
153             width: 600px;
154             margin: 20px auto;
155         }
156 
157         .show-content {
158             width: 578px;
159             border: 1px solid #ccc;
160             border-radius: 4px;
161             margin-bottom: 10px;
162             padding: 10px;
163             position: relative;
164             overflow: hidden;
165         }
166 
167         .show-name {
168             width: 100%;
169             text-align: left;
170             font-size: 14px;
171             color: #333;
172             font-weight: bold;
173         }
174 
175         .show-txt {
176             width: 100%;
177             color: #444;
178             font-size: 14px;
179             margin-top: 10px;
180         }
181 
182         .show-txt p {
183             width: 100%;
184             word-wrap: break-word;
185         }
186 
187         .show-time {
188             font-size: 12px;
189             color: #808080;
190             margin-top: 10px;
191         }
192 
193         .show-close {
194             position: absolute;
195             top: 10px;
196             right: 10px;
197             font-size: 12px;
198             color: #ccc;
199             cursor: pointer;
200             transition: .5s;
201         }
202 
203         .show-close:hover {
204             color: red;
205         }
206     </style>
207 </head>
208 <body>
209     <!-- 发布留言的主体 -->
210     <div class="wrap">
211         <div class="wrap-head">
212             <div class="head-logo">
213                 <img src="img/xx.png" />
214             </div>
215             <div class="head-txt">
216                 <a class="title-txt" href="javascript:void(0)">置办年货省省省!红包在手年货无忧!点击领取年货红包&nbsp;&nbsp;&nbsp;热门微博</a>
217             </div>
218         </div>
219         <div class="main-txt">
220             <textarea name="" rows="" cols="" class="main-area"></textarea>
221         </div>
222         <div class="warp-footer">
223             <div class="warp-icon-cont">
224                 <ul>
225                     <li><img src="img/wb1.png" alt="" />
226                         <a href="javascript:void(0)">表情</a>
227                     </li>
228                     <li><img src="img/wb2.png" alt="" />
229                         <a href="javascript:void(0)">图片</a>
230                     </li>
231                     <li><img src="img/wb3.png" alt="" />
232                         <a href="javascript:void(0)">视频</a>
233                     </li>
234                     <li><img src="img/wb4.png" alt="" />
235                         <a href="javascript:void(0)">话题</a>
236                     </li>
237                     <li><img src="img/wb5.png" alt="" />
238                         <a href="javascript:void(0)">文章</a>
239                     </li>
240                 </ul>
241             </div>
242             <div class="warp-footer-btns">
243                 <div class="release-btn">
244                     <a href="javascript:void(0)">发布</a>
245                 </div>
246             </div>
247         </div>
248     </div>
249     <!-- 显示留言的主体 -->
250     <div class="show">
251         <!-- <div class="show-content">
252             <div class="show-name">Xx</div>
253             <div class="show-txt">
254                 <p class="">这是内容</p>
255             </div>
256             <div class="show-time">2018年10月24日</div>
257             <div class="show-close">x</div>
258         </div> -->
259     </div>
260 
261 </body>
262 <script src="js/jquery-3.3.1.min.js"></script>
263 <script type="text/javascript">
264 $(function () {
265     // 还能输入的字得个数
266     var able_count = 140;
267     // 是否可以发布留言
268     var release_able = false;
269 
270     // 右上角文字
271     var $title_txt = $('.title-txt');
272 
273     // 留言框
274     var $main_area = $('.main-area');
275     // 发布按钮
276     var $release_btn = $('.release-btn');
277 
278     // 输入框获取焦点
279     $main_area.focus(function () {
280         console.log("获取焦点");
281         $(this).parent().addClass('outline');
282         $title_txt.addClass('title');
283         if (able_count >= 0) {
284             $title_txt.html("还可以输入" + able_count + "个字");
285         } else {
286             $title_txt.html("你以超出" + (-able_count) + "个字");
287         }
288     })
289     // 输入框失去焦点
290     $main_area.blur(function () {
291         console.log("失去焦点");
292         $(this).parent().removeClass('outline');
293         $title_txt.removeClass('title');
294         $title_txt.html("置办年货省省省!红包在手年货无忧!点击领取年货红包&nbsp;&nbsp;&nbsp;热门微博");
295     })
296     // 输入框文本修改
297     $main_area.on('input', function () {
298         console.log("文本修改");
299         // 剩余可输入的字个数
300         able_count = 140 - $main_area.val().length;
301         // console.log(able_count);
302         // 根据可输入字的个数决定右上角文本的提示 与 是否能发布的状态
303         if (able_count >= 0 && able_count <= 140) {
304             $title_txt.html("还可以输入" + able_count + "个字");
305             if (able_count != 140) {
306                 release_able = true;
307             } else {
308                 release_able = false;
309             }
310         } else {
311             $title_txt.html("你以超出" + (-able_count) + "个字");
312             release_able = false;
313         }
314         // 根据发布状态决定发布按钮的样式
315         if (release_able) {
316             $release_btn.css({
317                 backgroundColor: "orange",
318                 borderColor: "orange"
319             })
320         } else {
321             $release_btn.css({
322                 backgroundColor: "#ffc09f",
323                 borderColor: "#ffc09f"
324             })
325         }
326     })
327     // 发布事件
328     $release_btn.click(function () {
329         console.log("发布");
330         if (release_able) {
331             console.log('可以发布');
332             // 创建
333             var $showContent = $('<div class="show-content"></div>'),
334             $showName = $('<div class="show-name"></div>'),
335             $showTxt = $('<div class="show-txt"></div>'),
336             $showTime = $('<div class="show-time"></div>'),
337             $showClose = $('<div class="show-close"></div>'),
338             $showP = $('<p class=""></p>');
339             // 设置
340             $showName.text("XxXx");
341             $showP.text($main_area.val());
342             $showTime.text("2018年10月24日");
343             $showClose.text("x");
344             // 添加
345             $showTxt.append($showP);
346             $showContent.append($showName);
347             $showContent.append($showTxt);
348             $showContent.append($showTime);
349             $showContent.append($showClose);
350 
351             $('.show').prepend($showContent);
352 
353             // 添加动画
354             $showContent.css({
355                 top: '-150px'
356             })
357             $showContent.animate({
358                 top: 0
359             }, 200)
360 
361             // 删除事件
362             $showClose.click(function () {
363                 console.log($(this).parent().index());
364                 console.log($showContent.index());
365                 // 删除动画
366                 $showContent.animate({
367                     height: 0
368                 }, 200, function () {
369                     // 动画结束后将自身从dom中移除
370                     $showContent.remove();
371                 })
372             })
373 
374             // 发布成功后收尾工作
375             $main_area.val("");
376             able_count = 140;
377             release_able = false;
378             $release_btn.css({
379                 backgroundColor: '#ffc09f',
380                 borderColor: '#ffc09f'
381             })
382 
383         }
384     })
385 })
386 </script>
387 </html>
留言板.html
  1 <!DOCTYPE html>
  2 <html lang="zh">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>jq轮播图</title>
  6     <style type="text/css">
  7         body, ul {
  8             margin: 0;
  9             padding: 0;
 10         }
 11         ul {
 12             list-style: none;
 13         }
 14         .scroll {
 15             position: relative;
 16             width: 200px;
 17             height: 75px;
 18             /*border: 1px solid black;*/
 19             margin: 150px auto;
 20             overflow: hidden;
 21             user-select: none;
 22         }
 23         .view {
 24             position: absolute;
 25             /*轮播图动画的主体*/
 26             left: -200px;
 27             /*?*/
 28             width: calc(200px * 6);
 29             height: 75px;  
 30         }
 31         .slide {
 32             width: 200px;
 33             height: 75px;
 34             float: left;
 35             text-align: center;
 36             font-size: 30px;
 37             line-height: 75px;
 38         }
 39     </style>
 40     <style type="text/css">
 41         .tag {
 42             position: absolute;
 43             bottom: 5px;
 44             right: 5px;
 45         }
 46         .tag li {
 47             width: 10px;
 48             height: 10px;
 49             border-radius: 50%;
 50             border: 1px solid #888;
 51             float: left;
 52             margin-left: 5px;
 53             cursor: pointer;
 54         }
 55         .tag .active {
 56             background-color: #333;
 57         }
 58     </style>
 59     <style type="text/css">
 60         .left, .right {
 61             width: 20px;
 62             height: 30px;
 63             background-color: rgba(0, 0, 0, 0.4);
 64             top: 22px;
 65             text-align: center;
 66             line-height: 30px;
 67             cursor: pointer;
 68         }
 69         .left {
 70             position: absolute;
 71             left: 2px;
 72         }
 73         .right {
 74             position: absolute;
 75             right: 2px;
 76         }
 77     </style>
 78 </head>
 79 <body>
 80     <div class="scroll">
 81         <!-- view -->
 82         <ul class="view">
 83             <li class="slide" style="background-color: cyan">4</li>
 84             <li class="slide" style="background-color: red">1</li>
 85             <li class="slide" style="background-color: orange">2</li>
 86             <li class="slide" style="background-color: pink">3</li>
 87             <li class="slide" style="background-color: cyan">4</li>
 88             <li class="slide" style="background-color: red">1</li>
 89         </ul>
 90         <!-- tag -->
 91         <ul class="tag">
 92             <li class="active"></li>
 93             <li></li>
 94             <li></li>
 95             <li></li>
 96         </ul>
 97         <!-- toggle -->
 98         <div class="toggle">
 99             <div class="left">&lt;</div>
100             <div class="right">&gt;</div>
101         </div>
102     </div>
103 </body>
104 <script src="js/jquery-3.3.1.min.js"></script>
105 <script type="text/javascript">
106 $(function () {
107     var scroll_disable = false;
108 
109     // tag action
110     $('.tag').children().click(function () {
111         // console.log($(this).index());
112         // var $li = $(this);
113 
114         // 切换活跃的tag li
115         $(this).siblings('.active').removeClass("active");
116         $(this).addClass('active');
117 
118 
119         // 当前点击点的索引
120         var current_index = $(this).index();  // 0 | 1 | 2 | 3
121         // 一次动画滚动的距离
122         var scroll_width = $('.slide').width();
123 
124         // 切换图片 view
125         $(this).parent().prev().animate({
126             // +1 初始左侧有一张假图
127             left: -(current_index + 1) * scroll_width
128         }, 300)
129 
130     })
131 
132 
133     // right btn action
134     $('.right').click(function () {
135         if (!scroll_disable) {
136             // 在本次动画未结束时,让用户无法进行下一次点击
137             scroll_disable = true;
138 
139             // console.log("right btn action");
140             // 图片右滚
141             // 点击一下右键,在原位置(left偏移)基础上往右滚一个图片宽度
142 
143             // offset() 距离窗口左上角的top与left
144             // console.log($('.view').offset());
145             // position() 距离定位父级左上角的top与left
146             // console.log($('.view').position());
147 
148             // 当前整个view的做左移量
149             var current_left = $('.view').position().left;
150             // 一次动画滚动的距离
151             var scroll_width = $('.slide').width();
152             $('.view').animate({
153                 left: current_left - scroll_width
154             }, 300, function () {
155                 scroll_disable = false;
156                 // 显示末尾假图时
157                 // console.log(current_left);
158                 if (current_left <= -(scroll_width * 4)) {
159                     // 切换为首位真图
160                     $(this).css({
161                         left: -scroll_width
162                     })
163                 }
164             })
165 
166             // tag切换
167             var index = Math.abs(current_left / scroll_width);
168             // console.log(index);
169             if (index == 4) {
170                 index = 0;
171             }
172             // tag下面的index索引指向的li变成活跃状态,该li的其他兄弟,都变成不活跃状态
173             $current_li = $('.tag').children().eq(index);
174             $current_li.addClass('active');
175             $current_li.siblings().removeClass('active');
176 
177             // $('.tag').children().eq(index).addClass('active').siblings().removeClass('active');
178 
179         }
180     })
181     // left btn action 
182     $('.left').click(function () {
183         if (!scroll_disable) {
184             // 取消滚动
185             scroll_disable = true;
186 
187             // 图片左滚
188             // 当前整个view的做左移量
189             var current_left = $('.view').position().left;
190 
191             // '-200px' => -200
192             // var current_left = parseInt($('.view').css('left'));
193 
194             // 一次动画滚动的距离
195             var scroll_width = $('.slide').width();
196             $('.view').animate({
197                 left: current_left + scroll_width  // 决定方向
198             }, 300, function () {
199                 // 动画结束回调函数
200                 // 重新可以滚动
201                 scroll_disable = false;
202                 // 在首位假图时
203                 // console.log(current_left);
204                 if (current_left >= -scroll_width) {  // 决定假图往真图切换的位置点
205                     $(this).css({
206                         left: -scroll_width * 4
207                     })
208                 }
209             })
210 
211             // tag切换
212             // 对应关系 1=>3 4=>2 3=>1 2=>0
213             var index = Math.abs(current_left / scroll_width) - 2;
214             index = parseInt(index);
215             if (index == -1) {
216                 index = 3
217             }
218             // console.log(index);
219             $current_li = $('.tag').children().eq(index);
220             $current_li.addClass('active');
221             $current_li.siblings().removeClass('active');
222         }
223     })
224 
225     var timer = 0;
226     function autoScroll() {
227         timer = setInterval(function () {
228             if (!scroll_disable) {
229                 scroll_disable = true;
230                 var current_left = $('.view').position().left;
231                 var scroll_width = $('.slide').width();
232                 $('.view').animate({
233                     left: current_left - scroll_width
234                 }, 300, function () {
235                     scroll_disable = false;
236                     if (current_left <= -(scroll_width * 4)) {
237                         $(this).css({
238                             left: -scroll_width
239                         })
240                     }
241                 })
242 
243                 var index = Math.abs(current_left / scroll_width);
244                 if (index == 4) {
245                     index = 0;
246                 }
247                 $('.tag').children().eq(index).addClass('active').siblings().removeClass('active');
248 
249             }
250         }, 3000)
251     }
252     // 自启
253     autoScroll()
254     $('.scroll').mouseover(function () {
255         clearInterval(timer)
256     })
257     $('.scroll').mouseout(function () {
258         autoScroll()
259     })
260 })
261 </script>
262 </html>
jq轮播图.html

猜你喜欢

转载自www.cnblogs.com/xuqidong/p/12358953.html
今日推荐