<script type="text/javascript" src="js/cl.js"></script> <script type="text/javascript"> window.onload = function () { document.addeventlistener('touchstart',function (ev) { ev = ev || event ev.preventdefault() }) var arr = ["img/01.jpg","img/02.jpg","img/03.jpg","img/04.jpg","img/05.jpg"] cl.carousel(arr) } </script>
cl.js文件代码:
!(function (w) { // 将函数绑给window的cl属性上 w.cl = {}; w.cl.css = function(node,type,val) { // 判断节点transform对象是否存在,不存在则添加 if (typeof node === "object" && typeof node["transform"] == "undefined") { node["transform"] = {}; } if(arguments.length >= 3){// 写操作 //设置 var text = ""; // 加入两次传入同样属性的变换,则会被覆盖 // 只会更改改变的值,之前没有改变的值则不会改变 node["transform"][type] = val; // in操作符,会查找对象实例本身及原型链上所有的属性,可能会对后续操作产生影响 for (item in node["transform"]) { if(node["transform"].hasownproperty(item)){ switch (item){ case "translatex": case "translatey": text += item + "(" + node["transform"][item] + "px)"; break; case "scale": text += item + "(" + node["transform"][item] + ")"; break; case "roate": text += item + "(" + node["transform"][item] + "deg)"; break; } } } // 兼容性问题 node.style.transform = node.style.webkittransform = text; }else if(arguments.length == 2){ // 读操作 // 此时只传入了2个参数,第3个参数并没有用上,所以可以利用未使用的第3个参数返回结果 val = node["transform"][type]; if (typeof val === 'undefined'){ switch (type){ case "translatex": case "translatey": case "rotate": val = 0; break; case "scale": val = 1; break; } } return val; } } w.cl.carousel = function (arr) { // 布局 var carouselwrap = document.queryselector(".carousel-wrap"); if(carouselwrap){ var pointslength = arr.length; // 无缝 var needcarousel = carouselwrap.getattribute('needcarousel'); needcarousel = needcarousel == null false:true; //console.log(needcarousel); if(needcarousel){ arr = arr.concat(arr); } var ulnode = document.createelement('ul'); var stylenode = document.createelement('style') ulnode.classlist.add('list'); for(var i=0;i
如对本文有疑问, 点击进行留言回复!!
css深入剖析transform的translate和perspective
HCIE第四天总结(典型组网之一:CSS+Eth-Trunk+iStack)
了解下Apache Elasticsearch 和 Kibana
网友评论