分享jquery无插件实现鼠标拖动切换图片/内容功能

沐绒 沐绒     2022-10-01     113

关键词:

 

前言

我就想随便叨逼叨几句,爱看就看几句,不爱看就直接跳过看正文就好啦~

这个方法是仿写页面时我自己研究出来,可能有比我更简单的方法。

但我不管,因为我没查我不知道,我就觉得我的最好啦,耶耶耶~

 


  

效果图

 

 


  

功能描述

1、鼠标按住移动一定距离,内容随之进行切换。

2、开始和结尾处不能再拖动了。

3、下方的控制条随之变换,进行切换指示。

 


  

解决思路

1、利用jQuery监听鼠标移动距离

2、内容浮动排成一列,长度是父容器宽度的3倍

3、当移动距离超过一定长度时,内容移动一倍父容器宽度的距离

4、内容移动通过定位左右移动来实现

5、下方控制条3个小白点是固定的,一个大白点包含一个黑点的整体(即选中点)随内容进行同步移动,来实现视觉上切换指示

 


 

代码演示

1、HTML部分

 1 <div class="ppt">
 2     <div id="ppt-contents">
 3         <div class="ppt-item">
 4             <div class="item">
 5                 <div class="container-icon">
 6                     <i class="fa fa-quote-right"></i>
 7                 </div>
 8                 <p>跟觅未合作很愉快,我们觉得觅未是一家很专业的品牌设计公司,这个团队非常棒,有激情、有创造力、有执行力,经常给我们带来很多好的IDEA,是我们合作过的供应商中设计水平比较高,非常值得信任的一家。</p>
 9                 <h4 class="quote-author">东阿市场部 / 刘经理 </h4>
10             </div>
11         </div>
12         <div class="ppt-item">
13             <div class="item">
14                 <div class="container-icon">
15                     <i class="fa fa-quote-right"></i>
16                 </div>
17                 <p>觅未是一家很用心的品牌设计公司,相比之前合作过的一些供应商,觅未的工作态度认真主动,项目进度控制严格,即便我们没有要求,他们也会主动做多款不同方向的设计稿供我们选择,与觅未合作我们很放心。</p>
18                 <h4 class="quote-author">雀巢市场部 / 张经理 </h4>
19             </div>
20         </div>
21         <div class="ppt-item">
22             <div class="item">
23                 <div class="container-icon">
24                     <i class="fa fa-quote-right"></i>
25                 </div>
26                 <p>我们是通过一次比稿选择了觅未创意,他们除了设计能力突出之外,还有自己的技术研发团队,经营模式融合了互联网的服务理念,沟通流程扁平化,服务态度诚恳,执行效率高,是一家性价比很高的设计公司。</p>
27                 <h4 class="quote-author">伊利市场部 / 王经理 </h4>
28             </div>
29         </div>
30     </div>
31 </div>
32 <div class="ppt-controls">
33     <div class="dots">
34         <div class="dot"></div>
35         <div class="dot"></div>
36         <div class="dot"></div>
37         <div id="select-dot">
38             <div id="black-dot"></div>
39         </div>
40     </div>

 

2、CSS部分

 1 //最外面的父容器,相当于一个显示口
 2 .ppt {
 3     width: 100%;
 4     height: 100%;
 5     //要隐藏超出的部分
 6     overflow: hidden;
 7     cursor: pointer;
 8     position: relative;
 9 }
10 
11 .ppt-item {
12     //子元素左浮动,使其排成一列
13     float: left;
14     color: #FFFFFF;
15     width: 33.3%;
16     //使文本无法选中
17     user-select: none;
18 }
19 
20 #contact .container-icon {
21     margin-top: 10px;
22     font-size: 38px;
23 }
24 
25 #contact .dark-bg p {
26     margin: 25px 100px;
27     font-size: 16px;
28     line-height: 1.8;
29 }
30 
31 #contact .ppt-controls {
32     margin-top: 10px;
33 }
34 
35 .ppt-controls .dots {
36     //相对定位,使选中的点可以相对他进行移动
37     position: relative;
38     width: 72px;
39     margin: 0 auto;
40     text-align: center;
41 }
42 
43 .ppt-controls .dot {
44     width: 8px;
45     height: 8px;
46     background-color: #FFFFFF;
47     border-radius: 5px;
48     float: left;
49     margin: 2px 8px;
50 }
51 
52 #select-dot{
53     width: 14px;
54     height: 14px;
55     background-color: #FFFFFF;
56     border-radius: 6px;
57     margin-left:8px ;
58     //相对定位,使其可以左右移动
59     position: relative;
60     left:0;
61     //快速转化,效果更好
62     transition: all 0.001s ease;
63 }
64 
65 #black-dot{
66     width: 8px;
67     height: 8px;
68     border-radius: 4px;
69     background-color: #4C424E;
70     margin: 0 3px;
71     position: absolute;
72     top: 3px;
73 }
74             

 

3、jQuery部分

 1 var x = 0
 2 $(".ppt").mousedown(function(event) {
 3     //获取鼠标按下时的x方向位置
 4     x = event.pageX;
 5     $(".ppt").mouseup(function(event) {
 6         //获取鼠标抬起时的x方向位置
 7         var newx = event.pageX;
 8          //两者相减得到鼠标移动距离
 9         var changex = newx - x
10          //获取内容相对于父容器的左偏移距离 
11         var left = $("#ppt-contents").position().left;
12           //获取选中点的左偏移距离 
13         var dleft = $("#select-dot").position().left;
14          //获取父容器的宽度
15         var width = $(".ppt").width();
16                 //判断移动正负和大小,来决定对象移动方向的距离
17                 if(changex > 60) {
18             var newleft = left + width;
19             var newdleft = dleft - 24;
20             if(newleft > 0) {
21                 newleft = 0;
22                 newdleft = 0;
23             };
24             $("#ppt-contents").css("left", newleft);
25             $("#select-dot").css("left", newdleft);
26         };
27         if(changex < -60) {
28             var newleft = left - width
29             var newdleft = dleft + 24;
30             if(newleft < -width * 2) {
31                 newleft = -width * 2;
32                 newdleft = 48;
33             };
34             $("#ppt-contents").css("left", newleft);
35             $("#select-dot").css("left", newdleft);
36         };
37     });
38 });        
39     

 

用jquery.touchswipe插件实现手机端场景滑动切换效果

  使用jQuery的touchSwipe插件监听触摸滑动事件,结合css3实现手机端场景滑动切换效果。最好在手机端测试代码,也可以在PC端用鼠标点击模拟滑动。1、html代码:<divclass="container"><divclass="pagepage0page_current"><h1>你好,... 查看详情

很有点意思的特效,本人很喜欢

jquery图片对联广告制作jQuery侧面浮动图片广告点击》jquery图片对联广告制作jQuery侧面浮动图片广告jquery浮动对联图片广告制作一个侧面浮动图片广告特效,类似滚屏效果的图片广告。jQuery下载。jQuery幻灯片Firefox附加组件中心的... 查看详情

实现鼠标拖动canvas绘制的图片

不啰嗦上代码:<html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"><title>无标题文档</title></head><body><canvasid="gameCanvas"width="500px"heig 查看详情

《基于jquery和css的特效整理》系列分享专栏

...www.webfalse.com/read/201724.html文章一款基于jQuery的颜色拾取器分享一款基于jQuery的QQ表情插件一款基于jQuery的图片水平滑动插件一款基于jquery超炫的图片切换特效一款基于jquery实现的鼠标单击出现水波特效一款基于jquery滑动后固定于... 查看详情

用jquery实现鼠标移动切换图片动画

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv=" 查看详情

分享一些经典的特效效果,希望对大家有帮助

jquerycolor颜色变化插件设置背景颜色变化透明图片变色效果https://www.mk2048.com/demo/demo_target_desc.php?id=j22ibc12jjquery图片滤镜特效插件轻松实现颜色不断渐变jQueryslide焦点图片滚动插件仿京东商城首页焦点图片滚动轮播点击》jQueryslide... 查看详情

特殊选择jquery Selectable

】特殊选择jquerySelectable【英文标题】:SpecialselectionjquerySelectable【发布时间】:2017-09-0309:52:51【问题描述】:我有一个日历网格(用于月份)。我想为事件选择时间段。和图片一样:图片1。图2。如何实现这样的选择(当用户用... 查看详情

jquery实现无刷新显示页面内容

一个页面分左右两部分,左边是导航板块,右边是显示模块,我想实现的是点击左边的导航按钮在右边就能添加一个tab页面显示,点击多个后,各个tab排到一列,这个用jquery能实现吗???具体怎么实现的?原则上你可以用iframe... 查看详情

jquery制作插件---渐隐轮播

 //需求:打开网页时,每秒钟自动切换下一张图片内容。也可以用鼠标点导航按钮进行图片切换   //代码如下<!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <title>Document</title&g 查看详情

jquery实现鼠标移入切换图片(代码片段)

初始效果:鼠标移入效果:             首先添加jQuery库,我这边直接引用百度CDN地址 <scriptsrc="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 写一个jQuery载入事... 查看详情

很有点意思的特效,本人很喜欢

jQuery悬停div边框动画特效https://www.mk2048.com/demo/demo_target_desc.php?id=hbihch22jjQuery鼠标悬停div容器框,线条边框动画效果。jQuery文章自动生成目录索引导航菜单代码https://www.mk2048.com/demo/demo_target_desc.php?id=hbi0ibkaajQuery根据文章内容自动... 查看详情

分享一些经典的特效效果,希望对大家有帮助

jQuery左侧浮动导航条点击动画弹出移动箱单页内容https://www.mk2048.com/demo/demo_target_desc.php?id=2b2jkb00jjQuery移动箱内容jQuery底部滑出菜单_鼠标悬停滑动导航条https://www.mk2048.com/demo/demo_target_desc.php?id=2bcaii1aajQuery底部滑出菜单jQuery的简易... 查看详情

推荐10款左右切换的焦点图源码下载

1.jQuery左右循环焦点图,带箭头按钮这次要分享的jQuery插件也是一款焦点图插件,这在我们之前分享的焦点图插件中算是功能比较完善的了,图片的滑动效果也非常不错。图片两侧带有左右箭头,点击它们即可左右切换图片。另... 查看详情

猎豹mfc--拖动无边框窗体

...数如下:增加鼠标离开弹起的消息:鼠标移动的消息函数实现如下:鼠标当前位置减去鼠标开始的位置为鼠标移动的距离,为减少窗口的闪烁,让距离大于两个像素的 查看详情

用canvas实现鼠标拖动绘制矩形框

需要用到jCanvas插件和jQuery。jCanvas下载:https://raw.githubusercontent.com/caleb531/jcanvas/master/jcanvas.min.js代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title> 查看详情

这些例子很炫,感兴趣的童鞋可以了解一下

jsIE6支持png透明解决pngie6下不透明背景图片https://www.mk2048.com/demo/demo_target_desc.php?id=22ac0kjkjjsIE6支持png透明解决pngie6下不透明背景图片jQuery全屏图片幻灯片上下按钮控制幻灯片播放点击》jQuery全屏图片幻灯片上下按钮控制幻灯片播... 查看详情

图片居中按比例显示鼠标滚动缩放鼠标拖动平移

...left、top;平移:鼠标事件位置、定位left、top。目前贴出实现代码,具体研究内容再做补充下面是源码<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran 查看详情

jquery可拖动和鼠标悬停

】jquery可拖动和鼠标悬停【英文标题】:jquerydraggableandmouseover【发布时间】:2011-09-2609:07:12【问题描述】:我目前有一些在鼠标悬停时打开的下拉菜单。我正在使用jqueryui中的可拖放和可拖放来实现一些拖放功能。似乎菜单的鼠... 查看详情