替换元素的妙用1

2019-05-19  本文已影响0人  阿古瓜

因为像img等替换元素是没有伪类的::before, ::after, 可以用其特征实现,图片未加载时信息的显示效果

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>替换元素的妙用1</title>
    <style type="text/css">
        img {
            display: inline-block;
            width: 200px;
            height: 200px;
             /* 隐藏Firefox alt文字 */
            color: transparent;         
            position: relative;
            overflow: hidden;
        }
        img:not([src]) {
            /* 隐藏Chrome alt文字以及银色边框 */
            visibility: hidden;
        }
        
        img::before {
            /* 淡蓝色占位背景 */
            content: "";
            position: absolute; left: 0;
            width: 100%; height: 100%;
            background-color: #f0f3f9;
            visibility: visible;
        }
        
        img::after {
            /* 黑色alt信息条 */
            content: attr(alt);
            position: absolute;
            left: 0; bottom: 0;
            width: 100%;
            line-height: 30px;
            background-color: rgba(0,0,0,.3);
            color: white;
            text-align: center;
            font-size: 14px;
            transform: translateY(100%);
            /* 来点过渡动画效果 */
            transition: transform .2s;
            visibility: visible;
        }
        
        img:hover::after {
            transform: translateY(0);
        }
        
        
    </style>
</head>
<body>
    <div class="wrapper">
        <img alt="facebook" data-src="img/timg.jpg">
        <p><button>设置src属性显示图片</button></p>
    </div>
    
    
    <script type="text/javascript">
        var eleButton = document.querySelector('button'),
             eleImg = document.querySelector('img');

    if (eleButton && eleImg) {
        var initValueButton = eleButton.innerHTML;
        // 图片地址
        var srcImage = eleImg.getAttribute('data-src');
        // 移除该属性
        eleImg.removeAttribute('data-src');
        // 按钮点击事件
        eleButton.addEventListener('click', function() {
            if (this.innerHTML == initValueButton) {
                this.innerHTML = '移除src属性';
                // 图片显示
                eleImg.setAttribute('src', srcImage);
            } else {
                this.innerHTML = initValueButton;
                // src属性移除
                eleImg.removeAttribute('src');
            }
        });
    }
    </script>
</body>
</html>
上一篇下一篇

猜你喜欢

热点阅读