图片切换效果,纯js
公司有个技术很牛x的“老腊肉”,我向他请教,他给了我个网址,上面蛮多效果的,于是乎~我决定照着效果看能不能自己敲出来,我要变大神X3,重要的事说3遍。
它完成的效果是这样的:
好吧,一步一步来,先把框架搭好
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <style type="text/css">
- body{
- padding: 5em;
- }
- .frame{
- margin:0 auto;
- width: 968px;
- }
- .preview{
- width: 786px;
- height: 442px;
- float: left;
- }
- .list{
- float: right;
- width: 173px;
- }
- .list ul{
- margin:0;
- padding:0;
- list-style:none;
- overflow: hidden;
- }
- .list ul li{
- margin-bottom:9px;
- cursor: pointer;
- position: relative;
- }
- .list ul li>img{
- display: block;
- }
- .list ul li:after{
- background: rgba(0,0,0,.6);
- content: "";
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- transition: background 0.2s linear;
- }
- .list ul li.active:after{
- background: rgba(255,255,255,0);
- box-sizing: border-box;
- opacity: 1;
- border:4px solid #fff;
- transition: none;
- }
- .list ul li:hover:after{
- background: rgba(255,255,255,0);
- }
- </style>
- </head>
- <body>
- <div class="frame">
- <div class="preview" id="preview">
- <img src="wp_b0.jpg">
- </div>
- <div class="list" id="list">
- <ul>
- <li class="active">
- <img src="wp_t0.jpg">
- </li>
- <li>
- <img src="wp_t1.jpg">
- </li>
- <li>
- <img src="wp_t2.jpg">
- </li>
- <li>
- <img src="wp_t3.jpg">
- </li>
- </ul>
- </div>
- </div>
- </body>
- </html>
上面的代码仅仅完成了静态显示效果,鼠标移上去有个背景由暗变亮的过渡效果,但是还不能切换图片,接下来我们把这部分完成:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <script type="text/javascript">
- window.onload=function(){
- var links=document.getElementById("list").getElementsByTagName("li");
- for(var i=0;i<links.length;i++){
- links[i].onclick=function(){
- var preview=document.getElementById("preview");
- var previewImg=preview.getElementsByTagName("img")[0];
- // var pre_src=previewImg.getAttribute("src");
- // console.log(pre_src);
- var links_src=this.getElementsByTagName("img")[0].getAttribute("src");
- // console.log(links_src);
- var t=links_src.substr(4,1);
- // var b=pre_src.substr(4,1);
- // console.log(b); //b=0
- // console.log(t);//t=3
- var pre_src="wp_b"+t+".jpg";
- // console.log(pre_src);
- previewImg.setAttribute("src",pre_src);
- }
- }
- }
- </script>
- </head>
- <body>
- </body>
- </html>
为了方便查看,我把这部分功能以外的html代码和css样式部分全部删掉了。注释部分是方便测试用的。代码还是比较简单的,现在我们的图片可以切换了。
注意,此时还有最后一个功能,即鼠标点击右侧导航小图,所点导航增加一个“active”类,其他兄弟导航不允许存在此类。如果用jq写,很简单,
- $(document).ready(function() { $("div ul li").click(function(){ $(this).addClass("add").siblings().removeClass("add"); });});这样就可以,但这里我们用js写,则麻烦的多之前的增改了一下
- window.onload=function(){
- var links=document.getElementById("list").getElementsByTagName("li");
- for(var i=0;i<links.length;i++){
- links[i].onclick=function(e){
- var preview=document.getElementById("preview");
- var previewImg=preview.getElementsByTagName("img")[0];
- var links_src=this.getElementsByTagName("img")[0].getAttribute("src");
- var t=links_src.substr(4,1);
- var pre_src="wp_b"+t+".jpg";
- previewImg.setAttribute("src",pre_src); //下面是激活项
- e=e||window.event;
- var target=e.srcElement||e.target;
- for(var i=0,len=links.length;i<len;i++){
- links[i].className=target==links[i]?"active":"";
- }
- }
- }
- }
其中还用到了传参。参数e主要为了监听,获取鼠标的状态;
e = e || window.event是js在事件处理兼容IE和非IE的写法;
e.srcElement是为了下面获取触发事件的className属性。
图片切换效果,纯js的更多相关文章
- javascript马赛克遮罩图片切换效果:XMosaic.js(转)
新鲜出炉的javascript图片切换特效,实现的是马赛克遮罩切换.在flash里,好实现遮罩动画很简单,不过JS实现起来就有些困难了. XMosaic.js,与XScroll.js和XScroll2 ...
- js鼠标滚轮滚动图片切换效果
效果体验网址:http://keleyi.com/keleyi/phtml/image/12.htm HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C// ...
- js原生带缩略图的图片切换效果
js原生带缩略图的图片切换效果 本例中用到的 moveElement(elementID,final_x,final_y,interval)是来自<JavaScript DOM编程艺术(中文第二 ...
- jquery简单的图片切换效果,支持pc端、移动端的banner图片切换开发
详细内容请点击 无意中看见了两年前写的一个图片切换,那会儿刚刚学习网页制作,可以说是我的第一个处女座的jquery图片切换效果.无聊之余对它的宽度稍稍做了一下修改,变成了支持pc端.手机端全屏的ban ...
- jquery带按钮的图片切换效果
<!doctype html> <html> <head> <meta charset="gb2312"> <title> ...
- 精致3D图片切换效果,最适合企业产品展示
这是一个精致的立体图片切换效果,特别适合企业产品展示,可立即用于实际项目中.支持导航和自动播放功能, 基于 CSS3 实现,推荐使用最新的 Chrome,Firefox 和 Safari 浏览器浏览效 ...
- 100种不同图片切换效果插件pageSwitch
分享100种不同图片切换效果插件pageSwitch.这是一款适用于全屏切换场景,即一切一屏,并且实现了超过一百种切换效果,支持自定义切页动画.效果图如下: 在线预览 源码下载 实现的代码. ht ...
- 手机触屏滑动图片切换插件swiper.js
今天给大家分享一款手机触屏滑动图片切换插件swiper.js是一款swiper手机触屏滑动图片幻灯片,适合各种尺寸.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div ...
- Flash 用FLASH遮罩效果做图片切换效果
本教程是关于FLASH应用遮罩效果制作好看的图片切换效果.该教程选用FLASH遮罩中最简单的一种作为例子,当然你可以用自己的想象力来做出更多更好的图片动画.希望本教程能带你带来帮助. 让我们先看看效果 ...
- 10款好用的 jQuery 图片切换效果插件
jQuery 是一个非常优秀的 Javascript 框架,使用简单灵活,同时还有许多成熟的插件可供选择.其中,最令人印象深刻的应用之一就是对图片的处理,它可以让帮助你在你的项目中加入一些让人惊叹的效 ...
随机推荐
- 使用反射机制实现jQuery调用ashx类中的指定方法
使用反射机制实现jQuery调用ashx类中的指定方法 近期用asp.net做个小网站,但又不喜欢使用asp.net的服务器端控件,经过一番思量后确定前端采用原始的html.后台采用Linq to ...
- [google面试CTCI] 1-7.将矩阵中特定行、列置0
[字符串与数组] Q:Write an algorithm such that if an element in an MxN matrix is 0, its entire row and colu ...
- 公众平台Bee.WeiXin
微信公众平台Bee.WeiXin开发介绍 阅读目录 开始 预览 配置项说明 调用链方式的应答 理解调用链上下文 自定义MVC响应 总结 我们来看一下如何通过Bee.WeiXin开发微信公众平台.关于微 ...
- JS关闭当前页面的方法
JS关闭当前页面的方法 一.不带任何提示关闭窗口的js代码 1 <a href="javascript:window.opener=null;window.open('','_self ...
- ADS的go to命令
我们有时候在一个函数右键没有看到“go to”选项,这是因为没有Make,要先Make之后才能使用go to 命令
- myeclipse乱码问题和 编码设置
A Myeclipse安装后编码默认是GB18030,外面的人一般推荐用UTF-8.如果在导入项目后发现乱码现象,那是编码设置设置不对. Eclipse 编码设置: 全局编码设置:编码设置的方法 ...
- VS2012下基于Glut OpenGL glScissor示例程序:
剪裁测试用于限制绘制区域.我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃.换句话说,无论怎么绘制,剪裁窗口以外的像素将不会被修改.有的朋友可能 ...
- Python的下载和安装
一.下载(官方下载地址) 地址:https://www.python.org/downloads/ 我的是window7系统 二.安装详细过程 在选择安装组件的一步时,勾上所有的组件: 特别要注意选上 ...
- java基础IO删除文件夹文件
/** * 定义一个方法,能够删除任意文件夹,文件夹路径由键盘录入 注意:不要在C盘下做测试,请选定无用的文件夹测试! */ 1.键盘录入 private static File getfile() ...
- 微信小程序入门——怎么建多个项目?(导入官方Demo程序进行学习)
昨天1月9日微信小程序发布,顿时被朋友圈刷爆,今天看了一下官方文档,自己开始一步一步搭建环境体验小程序开发. 常见问题: 1.微信小程序开发是否需要重新创建开发者账号? 需要,即使之前申请了微信服务号 ...