• 随机格言生成器(Random Quote Machine)的制作


    这是freecodecamp上的一个项目,本来挺简单的,但是格言的免费api不好找,先找到一个国外的,却是搞出了跨域访问的问题,搞了半天没解决,然后想到了“一言”,下面便是用“一言”的api制作的随机格言生成器。

    功能要求:点击能够按钮获取一条随机格言,并获取作者,同时能够进行分享。在这里的分享就是分享到QQ空间(分享到QQ个人的链接好像挂了,我试了一些大型网站的也分享不了)

    先上图:
    这里写图片描述

    获取格言数据就是简单的调用api,核心代码如下:

    var getQuote = function(){
            $.getJSON("https://sslapi.hitokoto.cn/?encode=json",function(json){
                    content = json["hitokoto"];   //获取格言内容
                author = json["from"];            //获取格言作者
    
    
                $(".quote-content").html(content);
                $(".quote-author").html("——"+author);
            });
        }

    还有点击分享的代码,这个更简单,直接打开分享网站,不过得自己传一些参数:

    下面是引用自 http://www.cnblogs.com/buhuixiedaima/p/5062680.html

    http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?
    
    url=分享的网址
    &desc=默认分享理由(可选)
    &summary=分享摘要(可选)
    &title=分享标题(可选)
    &site=分享来源 如:腾讯网(可选)
    &pics=分享图片的路径(可选)

    查看演示:https://codepen.io/yinyoupoet/pen/OgqpPJ
    不过由于codepen的一些未知原因在这里面点击分享会有问题,但是如果将链接复制一下在新窗口打开就正确了。

    下面是完整代码:

    html

    <!DOCTYPE html>
    <html >
    <head>
        <meta charset="UTF-8">
    
    
        <title>Quote</title>
    
    
        <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'>
        <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'>
        <link rel="stylesheet" href="css/style.css">
    
    
    </head>
    
    <body>
        <div class="container-fluid content">
            <div class="quote">
                <i class="fa fa-quote-left" aria-hidden="true"></i>
                <p class="quote-content">Blessed is the man, who having nothing to say, abstains from giving wordy evidence of the fact.</p>
            </div>
            <br>
            <div class="author">
                <p class="quote-author">——Paul Erdos</p>
                <i class="fa fa-quote-right" aria-hidden="true"></i>
            </div>
            <div class="addition">
                <center><button class="btn btn-primary btn_next" onmouseover="this.style.background='#096148';this.style.color='#fff'" onmouseout="this.style.background='rgb(39,147,96)'">Next Quote</button></center>
                <div class="share"><a href="#" ><i class="fa fa-qq shareQQ" aria-hidden="true"></i></a></div>
            </div>
        </div>
    
    
    
        <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    
        <script src="js/index.js"></script>
    
    </body>
    </html>
    

    css

    *{
        margin: 0;
        padding:0;
    }
    body{
        background: url("https://images.unsplash.com/photo-1490598000245-075175152d25?dpr=1&auto=format&fit=crop&w=1500&h=1000&q=80&cs=tinysrgb&crop=") no-repeat center center fixed;
        background-size: cover;
    }
    
    .content{
        position: relative;
        margin: 8% auto auto auto;
        width: 40%;
        padding:40px 50px;
        border-radius: 20px;
        background: rgba(255,255,255,0.6);  /*背景透明而上面的内容不透明*/
    
    }
    
    .quote i{
        font-size: 4em;
        color: rgb(39,174,96);
    }
    
    .quote-content{
        display: inline;
        font-size: 2em;
        color: rgb(39,174,96);
    }
    
    .author{
        position: relative;
        text-align: right;
    
        color: rgb(39,174,96);
    }
    
    .author i{
        font-size: 4em;
        color: rgb(39,174,96);
    }
    
    .quote-author{
        font-size: 1.5em;
        display: inline;
    }
    
    
    
    .addition{
        width: 100%;
        position: relative;
    }
    .addition center{
        position: relative;
    }
    
    .btn_next{
        padding:5px 10px;
        font-size: 1.5em;
        color: #fff;
        background: rgb(39,174,96);
    
        border: 0;
    }
    .btn_next:blur{
        color: #fff;
    }
    
    
    .addition .shareQQ{
        position: relative;
        color: #ccc;
        font-size: 2em;
    }
    .addition .shareQQ:hover{
        color: rgb(39,174,96);
    
    }
    .addition a{
        position: relative;
        text-align: right;
    }
    .share{
        position: relative;
        text-align: right;
    }
    /*背景透明,字体不透明,兼容 IE6/7/8  参考网址:http://www.cnblogs.com/PeunZhang/p/4089894.html*/
    @media 0screen\,screen9{
        /*只支持IE6/7/8*/
        .content{
            background-color: #fff;
            filter:Alpha(opacity=50);
            position: static;/* IE6、7、8只能设置position:static(默认属性) ,否则会导致子元素继承Alpha值 */
            *zoom:1; /* 激活IE6、7的haslayout属性,让它读懂Alpha */
        }
    
        /*必须设置为relative,这样可以使它内容不透明*/
        .content .quote{
            position: relative;
        }
        .content .author{
            position: relative;
        }
    }

    js

    $(document).ready(function(){
        $(".btn_next").mouseup(function(){
            $(".btn_next").css("border","0");
            $(".btn_next").css("color","#fff");
            $(".btn_next").css("border",0);
        });
        $(".btn_next").mousedown(function(){
            $(".btn_next").css("border-color","#096148");
            $(".btn_next").css("color","#66bab7");
            $(".btn_next").css("border",0);
        });
    
    
        //调用一言api
        $(".btn_next").on("click",function(){
            getQuote();
        });
    
        var content="Blessed is the man, who having nothing to say, abstains from giving wordy evidence of the fact.";
        var author="Paul Erdos";
        var getQuote = function(){
            $.getJSON("https://sslapi.hitokoto.cn/?encode=json",function(json){
                content = json["hitokoto"];
                author = json["from"];
                //console.log(content+"_"+author);
    
                $(".quote-content").html(content);
                $(".quote-author").html("——"+author);
            });
        }
    
        getQuote();
    
    
        $(".shareQQ").on("click",function(){
            console.log(content+author);
            window.open('http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://www.baidu.com&desc='+content+'——'+author+'&title=吟游佳句&summary=我发现了一句很漂亮的话,快来看看吧&pics=&site=bshare');
        });
    
    
    });



    欢迎大家加入QQ群一起交流讨论,「吟游」程序人生——YinyouPoet

  • 相关阅读:
    iOS __weak学习碰到的疑问
    Shiro整合SSH开发3:配置Shiro认证后页面地址跳转问题(和详述不配置须要注意的问题)
    Android Hawk数据库 github开源项目
    2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
    opencv源代码之中的一个:cvboost.cpp
    regAsm的历史问题
    Spark核心概念理解
    linux的fork()函数具体解释 子进程复制父进程什么
    java8 Optional使用总结
    maven 项目报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决
  • 原文地址:https://www.cnblogs.com/yinyoupoet/p/13287580.html
Copyright © 2020-2023  润新知