• 星座运势


    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
        * {margin: 0;padding: 0;}.box { 278px;height: 157px;margin: 50px auto;border: 1px solid #D2E1F1;
    }.box-head {border-bottom: 1px dotted #cccccc;}.box-head h3 {font: 400 18px/35px "simsun";padding-left: 20px;}.box-body { 210px;height: 50px;margin-left: 10px;background: url(images/xingzuo.png) no-repeat;}.box-body a {display: inline-block; 50px;height: 50px;float: left;}select {margin: 3px 0 0 10px;}.star {position: relative;}#sp1 {display: inline-block; 80px;height: 18px;background: url(images/star.png) no-repeat;position: absolute;top: 4px;right: 0;}#sp2 {display: inline-block;height: 13px;background: url(images/star.png) no-repeat 0 -29px;}.box-footer p {line-height: 24px;height: 70px;font-size: 14px;padding: 0 15px 4px;}
        </style>
    </head>
    <body>
    <div class="box">
        <div class="box-head"><h3>星座运势</h3></div>
        <div class="box-body" id="boxBody">
            <a href="#"></a>
            <select name="" id="sele">
                <option value="0">白羊座(03.21-04.19)</option>
                <option value="1">金牛座(04.20-05.20)</option>
                <option value="2">双子座(05.21-06.21)</option>
                <option value="3">巨蟹座(06.22-07.22)</option>
                <option value="4">狮子座(07.23-08.22)</option>
                <option value="5">处女座(08.23-09.22)</option>
                <option value="6">天秤座(09.23-10.23)</option>
                <option value="7">天蝎座(10.24-11.22)</option>
                <option value="8">射手座(11.23-12.21)</option>
                <option value="9">摩羯座(12.22-01.19)</option>
               <option value="10">水瓶座(01.20-02.18)</option>
               <option value="11">双鱼座(02.19-03.20)</option>
            </select>
            <div class="star">今日运势:<span id="sp1"> <span id="sp2"></span></span></div>
        </div>
        <div class="box-footer" id="con">
            <p>你也许感到实现理想的旅途并不顺利,充满了荆棘与坎坷,与一开始所想的并不一样,因此更需要耐心... <a href="#">[详细]</a></p>
        </div>
    </div>
    </body>
    </html>
    <script>
        //需求 : 选择不同星座,显示不同的图片和运势以内容;
        //步骤:1 获取事件源和相关盒子
        //     2.绑定事件
        //     3.书写事件驱动程序
                //1 获取事件源和相关盒子
        var sele = document.getElementById("sele");
        var boxBody = document.getElementById("boxBody");
        var sp2 = document.getElementById("sp2");
        var con =document.getElementById("con");
        var arrcon =[
            "<p>你也许感到实现理想的旅途并不顺利,充满了荆棘与坎坷,与一开始所想的并不一样,因此更需要耐心... <a href='#'>[详细]</a></p>",
            "<p>今天你容易被财务困住了步伐,有些金牛可能会要偿还贷款,为他人还账,或者要面对一些财务上的困... <a href='#'>[详细]</a></p>",
            "<p>今天的你仿佛患上了星期一综合症,状态再次冻结了有木有。即使你很欢呼雀跃地与身边人分享想法,...<a href='#'>[详细]</a></p>",
            "<p>工作日的第一天,你却有些显得萎靡不振,不仅容易没睡好,也可能感到大脑无法运作,个人陷入一种... <a href='#'>[详细]</a></p>",
            "<p>今天的你在人群中显得相当活跃,和他人聊聊八卦都能体现出你独特的一面。但是你又感到自我表达不...<a href='#'>[详细]</a></p>",
            "<p>今天你的个人状态容易受家庭事务的牵连,工作上跃跃欲试却感到打不起精神。混乱的思绪也可能使你...<a href='#'>[详细]</a></p>",
            "<p>工作日的第一天你却有点使不上劲,在工作领域容易消极怠工,或者思绪困顿,感到多说多错,大脑也...<a href='#'>[详细]</a></p>",
            "<p>你可能会感到一些财务上多压力,入不敷出,或者需要不断的借款弥补漏洞,请客开销比落入你自己口...<a href='#'>[详细]</a></p>",
            "<p>今天你有些纠结,特别需要留意和身边亲近的人相处,将面临种种考验。这不是适合表白的一天,因为...<a href='#'>[详细]</a></p>",
            "<p>今天的你可能感到工作上的个人价值能以呈现,有一种为他人做嫁衣的感受,甚至你的一些功劳和业绩... <a href='#'>[详细]</a></p>",
            "<p>今天的你可能会丧失玩乐的兴致,一些聚会和娱乐活动,可能因为人员问题,导致既破财,又不能尽兴... <a href='#'>[详细]</a></p>",
            "<p>工作可能会给你带来泰山压顶的感觉,让你感到暂时缺少突破口,也反而更加迷茫。你也可能会有一些...<a href='#'>[详细]</a></p>"
            ]
        var arrsp2 =[5,4,8,1,9,10,3,6,2,10,7,10];
        sp2.style.width = arrsp2[0]*8+"px";
        sele.onchange = function (){
            boxBody.style.backgroundPositionY = "-"+50*[this.value]+"px";
            sp2.style.width = arrsp2[this.value]*8+"px";
            con.innerHTML = arrcon[this.value];
        }
    </script>
    

      图片资源:

    效果图:

    Tips:渲染的数据可以从后台数据库中调取!

    不知道您是否留意过QQ首页的右侧边栏,有一个星座运势的小功能模块,今天我们就来看看他的布局和原理是怎么实现的?其实是精灵图结合JavaScript的this使用;代码很简单。首先不同的星座日期对应着精灵图上的不同星座图标,设置星座选项的value从0到11,乘以50取负数的px值就是对应的星座图片,因为这里的图片都是设计好了的。同时运势的星星也要跟着变,这里是怎么实现的呢?其实是两张图片的叠加,亮星星放在上面,只要设置它的宽度,就能显示不同星级,五颗星分为10份,半颗星8px,所以这里可以通过0-10不同的取值就决定了有几颗星或者几颗半新,同时显示对应的p。如果您看了源码,不难发现,这些元素之间的关联是通过this.value;也就是当前选中选项的value值。

  • 相关阅读:
    内置对象
    Angular 动画
    Angular_上拉刷新
    angular Observable
    【Nginx】nginx为目录或网站加上密码认证
    MongoDB笔记
    websocket服务器+客户端
    cli 中php的配置和phpinfo不一样
    linux设置时区和自动同步时间
    crontab & php实现多进程思路
  • 原文地址:https://www.cnblogs.com/hu-qi/p/5731366.html
Copyright © 2020-2023  润新知