【分享】jQuery无插件实现 鼠标拖动图片切换 功能
前言
我就想随便叨逼叨几句,爱看就看几句,不爱看就直接跳过看正文就好啦~
这个方法是仿写页面时我自己研究出来,可能有比我更简单的方法。
但我不管,因为我没查我不知道,我就觉得我的最好啦,耶耶耶~
效果图
功能描述
1、鼠标按住移动一定距离,内容随之进行切换。
2、开始和结尾处不能再拖动了。
3、下方的控制条随之变换,进行切换指示。
解决思路
1、利用jQuery监听鼠标移动距离
2、内容浮动排成一列,长度是父容器宽度的3倍
3、当移动距离超过一定长度时,内容移动一倍父容器宽度的距离
4、内容移动通过定位左右移动来实现
5、下方控制条3个小白点是固定的,一个大白点包含一个黑点的整体(即选中点)随内容进行同步移动,来实现视觉上切换指示
代码演示
1、HTML部分
<div class="ppt">
<div id="ppt-contents">
<div class="ppt-item">
<div class="item">
<div class="container-icon">
<i class="fa fa-quote-right"></i>
</div>
<p>跟觅未合作很愉快,我们觉得觅未是一家很专业的品牌设计公司,这个团队非常棒,有激情、有创造力、有执行力,经常给我们带来很多好的IDEA,是我们合作过的供应商中设计水平比较高,非常值得信任的一家。</p>
<h4 class="quote-author">东阿市场部 / 刘经理 </h4>
</div>
</div>
<div class="ppt-item">
<div class="item">
<div class="container-icon">
<i class="fa fa-quote-right"></i>
</div>
<p>觅未是一家很用心的品牌设计公司,相比之前合作过的一些供应商,觅未的工作态度认真主动,项目进度控制严格,即便我们没有要求,他们也会主动做多款不同方向的设计稿供我们选择,与觅未合作我们很放心。</p>
<h4 class="quote-author">雀巢市场部 / 张经理 </h4>
</div>
</div>
<div class="ppt-item">
<div class="item">
<div class="container-icon">
<i class="fa fa-quote-right"></i>
</div>
<p>我们是通过一次比稿选择了觅未创意,他们除了设计能力突出之外,还有自己的技术研发团队,经营模式融合了互联网的服务理念,沟通流程扁平化,服务态度诚恳,执行效率高,是一家性价比很高的设计公司。</p>
<h4 class="quote-author">伊利市场部 / 王经理 </h4>
</div>
</div>
</div>
</div>
<div class="ppt-controls">
<div class="dots">
<div class="dot"></div>
<div class="dot"></div>
<div class="dot"></div>
<div id="select-dot">
<div id="black-dot"></div>
</div>
</div>
2、CSS部分
//最外面的父容器,相当于一个显示口
.ppt {
width: 100%;
height: 100%;
//要隐藏超出的部分
overflow: hidden;
cursor: pointer;
position: relative;
} .ppt-item {
//子元素左浮动,使其排成一列
float: left;
color: #FFFFFF;
width: 33.3%;
//使文本无法选中
user-select: none;
} #contact .container-icon {
margin-top: 10px;
font-size: 38px;
} #contact .dark-bg p {
margin: 25px 100px;
font-size: 16px;
line-height: 1.8;
} #contact .ppt-controls {
margin-top: 10px;
} .ppt-controls .dots {
//相对定位,使选中的点可以相对他进行移动
position: relative;
width: 72px;
margin: 0 auto;
text-align: center;
} .ppt-controls .dot {
width: 8px;
height: 8px;
background-color: #FFFFFF;
border-radius: 5px;
float: left;
margin: 2px 8px;
} #select-dot{
width: 14px;
height: 14px;
background-color: #FFFFFF;
border-radius: 6px;
margin-left:8px ;
//相对定位,使其可以左右移动
position: relative;
left:0;
//快速转化,效果更好
transition: all 0.001s ease;
} #black-dot{
width: 8px;
height: 8px;
border-radius: 4px;
background-color: #4C424E;
margin: 0 3px;
position: absolute;
top: 3px;
}
3、jQuery部分
var x = 0
$(".ppt").mousedown(function(event) {
//获取鼠标按下时的x方向位置
x = event.pageX;
$(".ppt").mouseup(function(event) {
//获取鼠标抬起时的x方向位置
var newx = event.pageX;
//两者相减得到鼠标移动距离
var changex = newx - x
//获取内容相对于父容器的左偏移距离
var left = $("#ppt-contents").position().left;
//获取选中点的左偏移距离
var dleft = $("#select-dot").position().left;
//获取父容器的宽度
var width = $(".ppt").width();
//判断移动正负和大小,来决定对象移动方向的距离
if(changex > 60) {
var newleft = left + width;
var newdleft = dleft - 24;
if(newleft > 0) {
newleft = 0;
newdleft = 0;
};
$("#ppt-contents").css("left", newleft);
$("#select-dot").css("left", newdleft);
};
if(changex < -60) {
var newleft = left - width
var newdleft = dleft + 24;
if(newleft < -width * 2) {
newleft = -width * 2;
newdleft = 48;
};
$("#ppt-contents").css("left", newleft);
$("#select-dot").css("left", newdleft);
};
});
});
【分享】jQuery无插件实现 鼠标拖动图片切换 功能的更多相关文章
- 【方法】jQuery无插件实现 鼠标拖动切换图片/内容 功能
前言 我就想随便叨逼叨几句,爱看就看几句,不爱看就直接跳过看正文就好啦~ 这个方法是仿写页面时我自己研究出来,可能有比我更简单的方法. 但我不管,因为我没查我不知道,我就觉得我的最好啦,耶耶耶~ 效果 ...
- js和jquery 两种写法 鼠标经过图片切换背景效果
这个是javascript的写法 <img src="res/img/shop-c_32.jpg" alt="" onmouseover="th ...
- 基于js鼠标拖动图片排序
分享一款基于js的图片排序效果.鼠标拖动图片,重新排列图片的排列顺序.该插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线 ...
- 分享JQuery动画插件Velocity.js的六种列表加载特效
分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览 源码下载 实现 ...
- jquery 实现的一款超简单的图片切换功能
<html><head> <meta http-equiv="Content-Type" content="text/html; chars ...
- Unity UGUI实现鼠标拖动图片
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...
- 30款jQuery常用网页焦点图banner图片切换 下载
1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...
- 30款jQuery常用网页焦点图banner图片切换 下载 (转)
1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...
- 30款jQuery常用网页焦点图banner图片切换
1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...
随机推荐
- 实现mysql在windows server 2008下自动备份
环境:MySQL 安装位置:D:\MySQL论坛数据库名称为:Db_Test数据库备份目的地:D:\db_bak\ 1.首先新建一个bat文件 rem ********************** ...
- 用git从github网站上下载代码的方式
原本单击如下下载按钮即可 但有时候github异常,该按钮无效,可以使用如下方法: 1.复制url,如https://github.com/ulli-kroll/mt7610u 2.进入要存放该代码的 ...
- 【转】Python装饰器与面向切面编程
原文请参考: http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html 今天来讨论一下装饰器.装饰器是一个很著名的设计模式,经常被用于有切 ...
- 使用dropload.js插件进行下拉刷新
移动端的下拉刷新是一个比较常见的功能了,网上也有很多框架,插件都有这种功能,所以直接拿来用就好了. html代码: <!--选项卡--><div class="tab&qu ...
- c# 【MVC】WebApi返回各种类型(图片/json数据/字符串)
using System.IO; /// <summary> /// WebApi返回图片 /// </summary> public HttpResponseMessage ...
- ajax和jsonp使用总结
前言:ajax和jsonp可以与后台通信,获取数据和信息,但是又不用刷新整个页面,实现页面的局部刷新. 一.ajax 定义:一种发送http请求与后台进行异步通讯的技术. 原理:实例化xmlhttp对 ...
- uvalive 2965 Jurassic Remains
https://vjudge.net/problem/UVALive-2965 题意: 给出若干个由大写字母组成的字符串,要求选出尽量多的字符串,使得每个大写字母出现的次数是偶数. 思路: 如果说我们 ...
- 使用下一代web开发框架koa2搭建自己的轻服务器
Koa 是由 Express 原班人马亲情打造的新一代web框架.既然已经有 Express 了,为什么又要搞一个Koa出来呢?因为 Koa 相比 Express 体积更小,代码更健壮,作用更纯粹. ...
- vue-cli 自定义指令directive 添加验证滑块
vue项目注册登录页面遇到了一个需要滑块的功能,网上看了很多插件发现都不太好用,于是自己写了一个插件供大家参考: 用的是vue的自定义指令direcive,只需要在需要的组件里放入对应的标签嵌套即可: ...
- Java 内存模型- Java Memory Model
多线程越来越多的使用,使得我们需要对它的深入理解.那么就涉及到了Java内存模型JMM.JMM是JVM的一部分,JMM定义了一个线程修改了一个共享变量,其他线程什么时候或者如何看到这个变量,如何去访问 ...