CSS3 transition公共方法下的slide效果实例页面

回到相关文章 »

代码:

CSS代码:
.box {
    width: 400px; padding: 15px;  background-color: #f0f3f9;
}
.container {
    height: 0; position: relative;  overflow: hidden;
    -webkit-transition: height 0.6s;
    -moz-transition: height 0.6s;
    -o-transition: height 0.6s;
    transition: height 0.6s;
}
.container .wrap {
    border: 20px solid #333;
}
:root .container .wrap {
    /* 正统slide效果 */
    position: absolute;
    bottom: 0;
}
                
HTML代码:
<p>想看美女图片?<a href="javascript:" id="button" data-rel="more">点击我</a></p>
<div id="more" class="container">
    <div class="wrap">
        <img src="//image.zhangxinxu.com/image/study/s/s256/mm1.jpg" height="191" />
        <p>我就是张含韵!</p>
    </div>
</div>
                
JS代码:
var slideToggleTrans = function(element, display) { //  display表示默认更多展开元素是显示状态还是隐藏
    if (typeof window.screenX === "number") {
        // 现代浏览器
        element.addEventListener("click", function() {
            display = !display;
            var rel = this.getAttribute("data-rel"), eleMore = document.querySelector("#" + rel);    

            eleMore && (eleMore.style.height = display? (function() {
                var height = 0;
                Array.prototype.slice.call(eleMore.childNodes).forEach(function(child) {
                    if (child.nodeType === 1) {
                        var oStyle = window.getComputedStyle(child);
                        height = child.clientHeight + (parseInt(oStyle.borderTopWidth) || 0) + (parseInt(oStyle.borderBottomWidth) || 0);
                    }
                });    
                return height;
            })() + "px": "0px");

        });
    } else {
        // IE6-IE8浏览器
        element.attachEvent("onclick", function() {    
            display = !display;
            var rel = element.getAttribute("data-rel"), eleMore = document.getElementById(rel);
            eleMore && (eleMore.style.height = display? "auto": "0px");
            return false;
        });
    }
};

// 应用渐进使用transition交互的slideToggle效果
slideToggleTrans(document.getElementById("button"));
                

效果:

想看美女图片?点击我

我就是张含韵!