旋转木马图片效果图,轮播图

  • 老规矩先上一张示例图:

HTML代码:

<div class="wrap" id="wrap"><div class="slide" id="slide"><ul><li><a href="#"><img src="data:images/slidepic1.jpg" alt=""/></a></li><li><a href="#"><img src="data:images/slidepic3.jpg" alt=""/></a></li><li><a href="#"><img src="data:images/slidepic2.jpg" alt=""/></a></li><li><a href="#"><img src="data:images/slidepic4.jpg" alt=""/></a></li><li><a href="#"><img src="data:images/slidepic5.jpg" alt=""/></a></li></ul><div class="arrow" id="arrow"><a href="javascript:;" class="prev" id="arrLeft"></a><a href="javascript:;" class="next" id="arrRight"></a></div></div>
</div>

CSS代码:

/*初始化  reset*/
blockquote, body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, hr, input, legend, li, ol, p, pre, td, textarea, th, ul {margin: 0;padding: 0
}body, button, input, select, textarea {font: 12px/1.5 "Microsoft YaHei", "微软雅黑", SimSun, "宋体", sans-serif;color: #666;
}ol, ul {list-style: none
}a {text-decoration: none
}fieldset, img {border: 0;vertical-align: top;
}a, input, button, select, textarea {outline: none;
}a, button {cursor: pointer;
}.wrap {width: 1200px;margin: 100px auto;
}.slide {height: 500px;position: relative;
}.slide li {position: absolute;left: 200px;top: 0;
}.slide li img {width: 100%;
}.arrow {opacity: 0;
}.prev, .next {width: 76px;height: 112px;position: absolute;top: 50%;margin-top: -56px;background: url(../images/prev.png) no-repeat;z-index: 99;
}.next {right: 0;background-image: url(../images/next.png);
}

一些定义:

//获取ID
function my$(id) {return document.getElementById(id);
}
//渐渐动画函数
function animate(element,json,fn) {clearInterval(element.timeId);element.timeId=setInterval(function () {var flag=true;//假设都达到了目标for(var attr in json){if(attr=="opacity"){//判断属性是不是opacityvar current= getAttrValue(element,attr)*100;//每次移动多少步var target=json[attr]*100;//直接赋值给一个变量,后面的代码都不用改var step=(target-current)/10;//(目标-当前)/10step=step>0?Math.ceil(step):Math.floor(step);current=current+step;element.style[attr]=current/100;}else if(attr=="zIndex"){//判断属性是不是zIndexelement.style[attr]=json[attr];}else{//普通的属性//获取当前的位置----getAttrValue(element,attr)获取的是字符串类型var current= parseInt(getAttrValue(element,attr))||0;//每次移动多少步var target=json[attr];//直接赋值给一个变量,后面的代码都不用改var step=(target-current)/10;//(目标-当前)/10step=step>0?Math.ceil(step):Math.floor(step);current=current+step;element.style[attr]=current+"px";}if(current!=target){flag=false;//如果没到目标结果就为false}}if(flag){//结果为trueclearInterval(element.timeId);if(fn){//如果用户传入了回调的函数fn(); //就直接的调用,}}},10);
}

Arr Config

  • 这里主要在于定义五张图的样式效果
  • 定义五张图的层级,透明度,大小,位置,从而达到平铺呈现的样式
  • 通过对象进行json格式封装,组成数组,不同的数组下标代表着不同的样式
  • 到时候我们会遍历这个数组
  //配置数组对象var config = [{width: 400,top: 20,left: 50,opacity: 0.2,zIndex: 2},//0{width: 600,top: 70,left: 0,opacity: 0.8,zIndex: 3},//1{width: 800,top: 100,left: 200,opacity: 1,zIndex: 4},//2{width: 600,top: 70,left: 600,opacity: 0.8,zIndex: 3},//3{width: 400,top: 20,left: 750,opacity: 0.2,zIndex: 2}//4];
<script>//页面加载的事件window.onload=function () {//1---散开图片//获取所有的livar flag=true;//----假设所有的效果都执行完毕了var list=my$("slide") .getElementsByTagName("li");function assign(){for (var i=0;i<list.length;i++){//设置每个li的位置,透明度,left,topanimate(list[i],config[i],function () {//插入回调函数,待上一次动画走完之后,让flag的值重新变为trueflag=true;})}};assign();//右边按钮my$("arrRight").onclick=function(){if (flag){flag=false;//删除数组中第一个元素,把这个元素追加到最后config.push(config.shift());assign();//重新分配}};//左边按钮//删除最后一个元素,吧这个元素追加到开头my$("arrLeft").onclick=function(){if (flag){flag=false;config.unshift(config.pop());assign();//重新分配}};//鼠标进入,左右焦点显示my$("slide").onmouseover=function () {//调用一个动画渐渐的效果animate(my$("arrow"),{"opacity":1})};//鼠标离开,左右焦点隐藏my$("slide").onmouseout=function () {//调用一个动画渐渐的效果animate(my$("arrow"),{"opacity":0})};};</script>

逻辑

  • 给左右2个角标注册,鼠标进入/退出事件,分别注册渐渐动画透明度的显示和隐藏
  • 这个实现效果是通过左右2个小角标的点击事件(onclick)来触发数组的删除和追加
  • 即:config.push(config.shift());
    • config.unshift(config.pop());
  • 在删除追加以后我们需要重新分配一下config 就是我前面定义的assign 这个方法
  • flag这个变量的值用Boolean类型来控制动画的执行次数,在上一次动画未执行完毕是不会执行下一次的动画的,这样就防止动画加快,和混乱变小
  • 我们在开始flag=为true ;假设所有效果都执行完毕将要开始下一次效果,在执行完一次动画animate之后吧flag赋值为false;最后在callback 回调函数重新吧flag赋值为true;

旋转木马图片效果图,轮播图相关推荐

  1. Vue 实现商品详情多播图(点击图片列表轮播图)

    Vue 实现商品详情多播图(点击轮播图) 之前弄商城项目有要到这种效果的商品展示图(商品图片轮播),找了很久没找到,就自己写了一个. 实现效果: 点击左右按钮图片左右移动 点击小图片图片展示到大图 图 ...

  2. java照片切换播放音乐_音乐播放器-图片切换-轮播图效果

    * { margin: 0; padding: 0; border: 0; } CSS3 @keyframes 动画效果 @keyframs myframes{ from{ } to{ transfo ...

  3. html原生轮播图的实现,使用原生js实现点击切换图片(轮播图)效果

    要实现的功能大致为: 点击两边的切换按钮,可以按顺序切换不同的图片 具体操作如下: 一.布局html 1.添加一个div容器 2.添加一个轮播图img标签 3.添加两个按钮img标签 二.css样式设 ...

  4. 制作一个含文字和图片的轮播图

    非原生JS制作轮播图 有一定的参考价值,但是不能保证不出错,还请大佬门自己多多尝试 实现3个功能: 1.自动轮播 2.鼠标放上去停止轮播 3.鼠标放在小圆点上实现轮播 原理 一个盒子(div)放置图片 ...

  5. jq4 实例(磁力图片、轮播图、腾讯课堂菜单、可弹出红色菜单、砸蛋游戏)...

    1.磁力图片: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...

  6. 妈蛋:kinMaxShow轮播图异常,WebUploader图片上传坑爹,图片被压缩了

    2019独角兽企业重金招聘Python工程师标准>>> 今天晚上在改造轮播图. 原来的代码是这样的: <div> <img src="${static}/ ...

  7. 解决bootstrap轮播图因为图片尺寸造成的问题

    发现问题 ​ 在使用bootstrap做轮播图时,由于图片尺寸,使得图片与轮播图结合的效果很差 ​ 解决方案 ​ 我们先找到轮播图的相关代码,如下: <div id="carousel ...

  8. banner 获取当前指示物_Android轮播图图片的本地保存及读取

    一.轮播图控件及图片加载 对于Android端的轮播图控件,我这边选用的是banner库 //轮播图 compile 'com.youth.banner:banner:1.4.9' //Glide c ...

  9. 【Android】轮播图图片的本地保存及读取

    #一.轮播图控件及图片加载 对于Android端的轮播图控件,我这边选用的是banner库 //轮播图 compile 'com.youth.banner:banner:1.4.9' //Glide ...

  10. swiper怎么在HTML引入JS文件,Swiper.js插件超简单实现轮播图

    Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端.能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果.超好用 话不多说,直接上教程 1.首先加载插件,需要用到 ...

最新文章

  1. STM32配置一般过程(持续更新中)
  2. postman接口测试实例_postman接口测试实例
  3. delphi实现两个目录路径的链接
  4. php 调用微信收货地址,php版微信自动获取收货地址api用法示例
  5. vue(el-button的五种类型,三种css格式)
  6. mysql授予权限和撤销权限的关系_MySQL数据库常用的授予权限和撤销权限的命令讲解...
  7. PL/SQL 连接配置
  8. 前端工作笔记-element ui弹窗嵌套并获取输入
  9. 前端开发 锚点链接 简单轮播图 0302
  10. 【任务悬赏】就地过年,原地充电,华为云社区喊你拿新年红包啦!
  11. vue改变标签属性_Vue用v-for给循环标签自身属性添加属性值的方法
  12. Navicat for oracle 提示 cannot load oci dll,193的解决方法
  13. VS2015卸载方式的解决
  14. 珠海空号检测的运行原理
  15. 拼音模糊搜索 php,精确搜索加拼音搜索加模糊搜索
  16. SATI 国产文献题录信息统计分析工具:简介
  17. linux安装红警教程,Deepin v20下玩红警三
  18. 基础知识(HTML + CSS)整理
  19. 使用WinRT OCR API的WPF中的OCR
  20. 基于R语言的关联规则分析项目

热门文章

  1. 5ic计算机考试考卷读取错误,北京自考出现错误试卷
  2. 【c++11并不遥远】使xcode工程支持c++11特性
  3. 浙江树人大学计算机大类专业分类,浙江树人学院各专业收费明细表
  4. python使用moviepy包下的VideoFileClip时报错:OSError: [WinError 6] 句柄无效解决方法
  5. 行业专家对2021年的云计算发展趋势的预测
  6. 电脑ping,电脑ping怎么用|电脑ping怎么打开_PC6教学
  7. 计算机文件拒绝被访问,文件访问被拒绝_电脑文件访问被拒绝,需要权限
  8. php验证qq,php QQ第三方登录/OAuth2.0验证
  9. 第二人生的源码分析(9)登录界面显示
  10. 使用电脑热点和Fiddler对Android app进行抓包