程序员专属情人节表白网站【HTML+CSS+JS制作甜蜜爱情表白主题网站模板】

❤ 精彩专栏推荐👇🏻👇🏻👇🏻
💂 作者主页: 【进入主页—🚀获取更多源码】
🎓 web前端期末大作业: 【📚HTML5网页期末作业 (1000套) 】
🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (125套) 】
七夕来袭!是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧!



二、📚网站介绍

📒网站文件方面:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件;

📙网页编辑方面:可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++ 等任意html编辑软件进行运行及修改编辑等操作)。
其中:
(1)📜html文件包含:其中index.html是首页、其他html为二级页面;
(2)📑 css文件包含:css全部页面样式,3D动态效果,雪花飘落等等
(3)📄 js文件包含:页面炫酷效果实现


三、🔗网站效果

▶️1.视频演示

58-一起跨年(表白)

🧩 2.图片演示

在这里插入图片描述


四、💒 网站代码

🧱HTML结构代码



<!DOCTYPE html>
<html lang="zh-CN">
<head>
	<meta charset="UTF-8">
	<title>2020年跨年快乐❤️</title>

    <script>
        //判断客户端设备,选择写入meta
        function init_viewport(){
            if(navigator.userAgent.indexOf('Android') != -1){
                var version = parseFloat(RegExp.$1);
                if(version>2.3){
                    var width = window.outerWidth == 0 ? window.screen.width : window.outerWidth;
                    var phoneScale = parseInt(width)/500;
                    document.write('<meta name="viewport" content="width=500, minimum-scale = '+ phoneScale +', maximum-scale = '+ phoneScale +', target-densitydpi=device-dpi">');
                }else{
                    document.write('<meta name="viewport" content="width=500, target-densitydpi=device-dpi, user-scalable=0">');
                }
            }else if(navigator.userAgent.indexOf('iPhone') != -1){
                var phoneScale = parseInt(window.screen.width)/500;
                document.write('<meta name="viewport" content="width=500, min-height=750, initial-scale=' + phoneScale +', maximum-scale='+phoneScale+', user-scalable=0" /> ');         //0.75   0.82
            }else{
                document.write('<meta name="viewport" content="width=500, height=750, initial-scale=0.64" /> '); //0.75  0.82
            }
        }
        init_viewport();
    </script> 

	<style>
		* {
            padding: 0px;
            margin: 0px;
            -webkit-box-sizing: border-box;
        } 
        body {
            background-color: white;
        }
        a {
            color: white;
            text-decoration: none; 
        }

        #div_container { /*最外层div,用于居中兼容PC和移动*/
            width: 500px;
            margin: 0px auto; 
            position: relative; 
            /*background-color: #FAFAFA;*/
            font-size: 1em;
        }


        .div_pure_words { /*文字部分的最外层,用于定位*/
            position: relative;
            display: none;
        }
        .div_pure_words_bg { /*背景设置在这里*/
            background-repeat: repeat; 
            background-size: 100%; 
            background-attachment: fixed; 
            width: 500px;
            min-height: 500px; 
        }
        .div_pure_words_height {
            visibility: hidden;
            padding: 30px; 
            text-align: justify;  /*为了使文字两端对齐 */
            white-space: pre-wrap; /*保留换行效果*/
            font-size: 1.1em;
            font-family: "Microsoft YaHei","Arial";
            color: white; 
        }
        .div_pw_typed {
            position: absolute;
            left: 0;
            right: 0;  /*4个方向定位使div充满整个画画*/
            top: 0;
            bottom: 0;  /*4个方向定位使div充满整个画画*/
            width: 500px;            
            background:rgba(255,255,255,0.8); /*半透明效果*/
            padding: 30px; 
            text-align: justify;  /*为了使文字两端对齐 */
        } 
        #span_pw_typed {
            width:100%; /*为了使文字两端对齐 */ 
            white-space:pre-wrap; /*保留换行效果*/ 
            font-size: 1.1em;
            font-family: "Microsoft YaHei","Arial";
        }


        #div_start_bg{
            width: 100%; height: 100%;
            position: absolute;
            left: 0px; top: 0px;
            z-index: 44;
            background-color: white;
        }
	</style>

    <!-- 按钮部分的样式 -->
    <link type="text/css" rel="stylesheet" href="css/theme_public_btn.css">


        

        

     

     

    <!-- 按需加载,选择此片头时方才加载 -->
        <link type="text/css" rel="stylesheet" href="css/start_intersect.css">  

     

     
</head>

<body>
    <div id="div_container"> <!-- 最外层div,用于居中兼容PC和移动 --> 
        <div id="div_start_bg"></div> <!-- 用于遮挡主题,作为片头的背景 -->

                

        <!-- 按需加载,选择此片头时方才加载 -->



        


          



        <!-- 按需加载,选择此片头时方才加载 -->
            <div id="div_intersect"><!-- 用于设置背景 -->
                <div id="div_is_inner"><!-- 用于存放content -->
                    <div class="div_is_open_bg">
                        <div class="div_is_open_btn" onclick="init_is_typed()"></div>
                    </div>

                    <!-- 画布在这里 -->
                    <canvas id="canvas_is"></canvas> 

                    <!-- 打字在这里 -->
                    <div class="div_is_typed"> 
                        <div id="div_is_img">  
                            <img class="img_is_typed">
                        </div>
                        <span id="span_is_typed"></span> 
                    </div>  
                </div>
            </div>


                
  
        <!-- 以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头 -->
        <!-- 以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头 -->
        <!-- 以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头 -->
        <!-- 以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头 -->
        <!-- 以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头  以上是动画和视频片头 -->






        <div class="div_pure_words"> <!-- 文字部分的最外层,用于定位 -->
            <div class="div_pure_words_bg"><!-- 背景设置在这里 -->
                <div class="div_pure_words_height"> 
                    <!-- 正文的内容复制到这里面,撑开整个文档的高度 -->
                </div>
            </div> 
            <div class="div_pw_typed"> <!-- 正文部分,绝对定位 --> 
                <span id="span_pw_typed"></span>
            </div> 
        </div>





        


        
        <div id='div_btn_container'> <!-- 按钮部分的最外层,处于文档流之中 -->
            <div id="div_btn_inner"> <!-- 按钮部分内层,用于定位 -->

                <div class='div_music_tips'></div>
                <div class="div_btn" id="div_music" onclick="music_switch()"> <!-- 音乐按钮部分 -->
                    <img id='img_music' src='/images/music_note_big.png' style='-webkit-animation:music_play_rotate 1s linear infinite'> 
                    <audio id="audio_music" autoplay="autoplay" loop="loop">
                        <source type="audio/mpeg"/>  
                        <!-- 您的浏览器不支持播放音乐 -->
                    </audio>
                </div>

                <div class='div_record_tips'></div>
                <div class="div_btn" id="div_record" onclick="record_switch()"> <!-- 录音按钮部分 -->
                    语音
                    <audio id="audio_record" loop="loop">
                        <source type="audio/mpeg"/>  
                        <!-- 您的浏览器不支持播放音乐 -->
                    </audio>
                </div>
                
                <!-- 只在提交状态显示 只在提交状态显示 只在提交状态显示 只在提交状态显示 -->
                <div class="div_btn" id='div_support'>
                        <a href="https://www.gwents.com/tag/%e8%a1%a8%e7%99%bd%e6%ba%90%e7%a0%81"><span>更多</span></a>
                    </div>  
                <!-- 只在提交状态显示 只在提交状态显示 只在提交状态显示 只在提交状态显示 -->

                <!-- 只在未提交状态显示 只在未提交状态显示 只在未提交状态显示 只在未提交状态显示 -->
                  
                <!-- 只在未提交状态显示 只在未提交状态显示 只在未提交状态显示 只在未提交状态显示 -->
            </div> 
        </div>
    </div>







    <script src="js/jquery-2.0.3.min.js"></script>
    <script src="js/typed.min.js"></script>
    <script src="js/support_upload_as.js"></script>
    <script src="js/jweixin-1.2.0.js"></script>
    <script>
        var window_height=$(window).height();
        console.log('window_height ->'+window_height);

        var theme='pure_words';
        console.log('theme ->'+theme);
        var theme_content={"pure_words_content":"\u4e16\u754c\u8fd9\u4e48\u5927\u2764\ufe0f\r\n\u800c\u6211\u771f\u6b63\u60f3\u843d\u811a\u7684\u5730\u65b9\u662f\u4f60\u7684\u8eab\u65c1\r\n\r\n\u5982\u679c\u4f60\u662f\u4e09\u90a3\u6211\u4e00\u5b9a\u662f\u4e5d\u2764\ufe0f\r\n\u4f60\u77e5\u9053\u4e3a\u4ec0\u4e48\u5417?\u56e0\u4e3a\u6211\u9664\u4e86\u4f60\u8fd8\u662f\u4f60\u2764\ufe0f\r\n","typed_bool":"typed_y","cursor_char":"cursor_heart","bg_style_pure_words":"bg_opacity","bg_img":"13.jpg","simple_page_content":"","video_page_content":""};
        console.log(theme_content);

        var music_json={"music_select":"m_online","m_online_id":"6","m_online_url":"http://music.163.com/song/media/outer/url?id=1412430003.mp3","m_upload_name":"null","m_upload_url":"null"};
        console.log(music_json);
        var record_json={"record_bool":"r_false","r_wechat_time":"null","r_wechat_url":"null","r_wechat_amr":"null"};
        console.log(record_json);
        var signPackage={"appid":"wx47f716bdd7699533","timestamp":1577533642,"nonceStr":"4uf5JH8gLZx2oSYN","url":"http:\/\/www.makusi.cn\/Home\/Play\/play_show\/ws\/YGdml21m","signature":"26b52c017a5dad1cfaa527b16f32ad6cd7fca23a","rawString":"jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VHINcjHJVwMsFjJyfreRy7AXf4KYX5l3Aku_9253FlC9OXF1HGSZbw6z2aOD5ti-qQ&noncestr=4uf5JH8gLZx2oSYN&timestamp=1577533642&url=http:\/\/www.makusi.cn\/Home\/Play\/play_show\/ws\/YGdml21m"};

        var main_title='2020年跨年快乐❤️';
        // console.log(main_title);
        if(main_title=='' || main_title=='null'){  //允许标题为空
            document.title='慢慢喜欢你';
        } 
        // console.log(""); 


        var pure_words_content=theme_content['pure_words_content'];
        var str_cursorChar; 
        var typed_bool;

        var interval_pw_height;
        var height_div_pw=$(".div_pure_words_height").height();
        function init_pure_words(){
            //允许内容为空时直接展示,不设置为随机内容,用于空主题
            if(typeof(pure_words_content)=='undefined'){ //处理全新作品
                var array_str_temp=[];
                random_text_array(array_str_temp,12); //获取随机的模板文字
                // array_str_temp.push('你现在看到的只是案例,文字是可以自定义哒,6000字以下');
                pure_words_content=array_str_temp.join('\r\r');
            }
            $(".div_pure_words_height").html(pure_words_content+'22222');  //初始化复制内容,撑开文档高度            
            
            // 初始化设置div的bg图片 初始化设置div的bg图片
            if(typeof(theme_content['bg_style_pure_words'])!='undefined' && theme_content['bg_style_pure_words']=='bg_opacity'){
                if(typeof(theme_content['bg_img'])!='undefined' && theme_content['bg_img']!=''){                    
                    $(".div_pure_words_bg").css({"background-image": "url("+theme_content['bg_img']+")"});
                }
            } 

            //以下是打字效果的js 
            if(typeof(theme_content['cursor_char'])!='undefined' && theme_content['cursor_char']!=''){
                switch(theme_content['cursor_char']){ //设置打字光标的样式
                    case 'cursor_heart':
                        str_cursorChar='❤';
                        break;
                    case 'cursor_sub':
                        str_cursorChar='_';
                        break;
                    case 'cursor_music':
                        str_cursorChar='♫';
                        break;
                    case 'cursor_star':
                        str_cursorChar='★';
                        break;
                    case 'cursor_sun':
                        str_cursorChar='☀';
                        break;
                    default:
                        str_cursorChar='|';
                }
            }else{ //处理全新作品,默认显示打字效果
                str_cursorChar='❤';
            }
            
            //判断用户有没有选择打字效果
            if(typeof(theme_content['typed_bool'])!='undefined' && theme_content['typed_bool']!=''){
                typed_bool= theme_content['typed_bool']=='typed_y' ? true : false;                  
            }else{
                typed_bool=false; //默认显示打字效果
            } 
            // console.log(typed_bool);
        
            display_pure_words(); 
            $(".div_pure_words").fadeIn();
            
            interval_pw_height=setInterval(function(){
                console.log('div_pure_words_height -> '+$('.div_pure_words_height').height());
                var least_height_div_pw=$('.div_pure_words_height').height();
                if(least_height_div_pw>height_div_pw){
                    height_div_pw=least_height_div_pw;
                }else{
                    clearInterval(interval_pw_height);
                    $(".div_pure_words_height").height(least_height_div_pw+100);
                    if($(".div_pure_words_height").height()<window_height){
                        $(".div_pure_words_height").height(window_height); //不能小于窗口的高度
                        console.log('let us be high as window');
                    } 
                }
            },100);
        }

        
        function display_pure_words(){
            if(typed_bool){ 
                var typed_pure_words = new Typed('#span_pw_typed', {
                    strings: [pure_words_content], //输入内容, 支持html标签
                    typeSpeed: 120, //打字速度
                    cursorChar: str_cursorChar,//替换光标的样式
                    contentType: 'html', //值为html时,将打印的文本标签直接解析html标签
                    onComplete: function(abc){
                                // console.log(abc); 
                                console.log('finished typing words'); 
                                // console.log($('#span_pw_typed').height()-$(".div_pure_words_height").height());
                            },
                });
            }else{
                //如果不需要打字效果就直接显示
                $("#span_pw_typed").html(pure_words_content).fadeIn(); 
            }
            init_attachment();
        } 


        function random_text_array(temp_array,length){  //获取随机的模板文字
            console.log('random_text_array');
            var random_array=[];
            while(random_array.length<length){
                // var random_num=Math.floor(Math.random()*(array_as_pics.length-0))+0;
                var random_num=Math.floor(Math.random()*(array_as_words_love.length)); //随机取值 
                if(random_array.indexOf(random_num)==-1){
                    random_array.push(random_num);
                }
            }
            // console.log(random_array);
            for(var i=0; i<length; i++){  
                temp_array.push(array_as_words_love[random_array[i]]); //获取随机的模板文字
            }
        }         
        
    </script>







        

     <!-- 按需加载,选择此片头时方才加载 -->
    

    <script> 
        var start_content={"hearttree_text":"\u5c0f\u751f\u4e0d\u624d\r\n\u4ef0\u6155\u59d1\u5a18\u5df2\u4e45\r\n\u6562\u95ee\u59d1\u5a18\u5fc3\u7cfb\u8c01\u5bb6\uff1f\r\n\u5018\u82e5\u59d1\u5a18\u4e0d\u5f03\r\n\u5c0f\u751f\u613f\u6276\u59d1\u5a18\u4e0a\u90a3\u82b1\u8f7f\r\n\u5165\u6211\u5bb6\u95e8\r\n\u4f59\u751f\u643a\u59d1\u5a18\u770b\u90a3\u671d\u9633\u8d77\r\n\u5750\u66ae\u843d\r\n\u770b\u90a3\u96c1\u5357\u98de\uff0c\u6708\u4e0b\u9152\u5bf9\u996e\r\n\u5c82\u4e0d\u5feb\u54c9\uff1f\ud83d\ude02\ud83d\ude02 _","hearttree_desc":"\u2764\ufe0f\u2764\ufe0f","hearttree_time":"2019-12-18","hearttree_time_type":"hearttree_postive","bg_img":"13.jpg","img_src":"13.gif","intersect_text":"\u5f80\u4e8b\u6e05\u96f6\u7231\u6068\u968f\u610f\uff0c2020\u5e0c\u671b\u4f60\u6d3b\u7684\u5f00\u5fc3\uff0c\u4e0d\u7528\u56de\u5934\u4e0d\u518d\u5c06\u5c31\uff0c\u8fc7\u53bb\u6240\u6709\u7684\u9057\u61be\u90fd\u662f2020\u7684\u60ca\u559c\uff0c\u9047\u89c1\u4f60\u90fd\u662f\u5929\u610f\uff0c\u62e5\u6709\u4f60\u90fd\u662f\u5e78\u8fd02020\uff0c\u613f\u81ea\u5df1\u6709\u80fd\u529b\u7231\u4f60\u2764\ufe0f","cursor_char":"cursor_heart","bg_style":"bg_custom","img_bool":"img_true","courage_h1":"","courage_h2":"","courage_receiver":"","courage_text":["\u6700\u7f8e\u4e3d\u7684\u4e8b\uff0c\u83ab\u8fc7\u4e8e\u5728\u6700\u597d\u7684\u65f6\u5149\u9047\u89c1\u4f60\uff0c\u76f8\u4e92\u5acc\u5f03\uff0c\u5374\u53c8\u4e0d\u79bb\u4e0d\u5f03","\u4e0d\u662f\u56e0\u4e3a\u60f3\u604b\u7231\u624d\u9047\u89c1\u4f60\uff0c\u800c\u662f\u9047\u89c1\u4f60\u4e4b\u540e\u6211\u624d\u6709\u4e86\u604b\u7231\u7684\u60f3\u6cd5","\u6211\u77e5\u9053\u9047\u89c1\u4f60\u4e0d\u5bb9\u6613\uff0c\u9519\u8fc7\u4f1a\u5f88\u53ef\u60dc\uff0c\u6211\u4e0d\u5e0c\u671b\u4f59\u751f\u90fd\u662f\u56de\u5fc6\uff0c\u6211\u60f3\u4f59\u751f\u6bcf\u5929\u90fd\u662f\u4f60\uff0c\u6211\u7231\u4f60"]}; //可能为null
        console.log(start_content); 

        var start_id;
        $(function(){
            //此事件为触发互动创意
            start_id='intersect'; //可能为null
            init_start(start_id);
        });
        
        function init_start(start_id){ 
            console.log('init_start ->'+start_id);
            switch(start_id){
                case 'loveformat':
                    $('.div_loveformat').show();
                    init_loveformat();
                    break;
                case 'hearttree':
                    $('#div_hearttree').show();
                    init_hearttree();
                    break;
                case 'courage':
                    $('#div_courage').show();
                    init_courage();
                    break;
                case 'birthdaycake':
                    $('#div_dbcake').show();
                    init_birthdaycake();
                    break;
                case 'intersect':
                    $('#div_intersect').show();
                    init_intersect();
                    break;
                case 'onlyyou':
                    $('#div_onlyyou').show();
                    init_onlyyou();
                    break;
                default:
                    init_theme(); 
            }
        } 

        //开始动画主体部分
        function init_theme(){
            console.log('init_theme');
            $('#div_start_bg').fadeOut();
            init_pure_words();            
        }

    </script>




    

        

    

    

    <!-- 按需加载,选择此片头时方才加载 -->
        <script src="js/start_intersect.js"></script> 


            



    <script> 
        var attachment='null'; //可能为null
        var attached_content={"bool_save":false}; //可能为null
        console.log(attached_content); 
       
        function init_attachment(){  //开始attachment
            console.log('init_attachment ->'+attachment);
            switch(attachment){
                case 'timer':
                    init_at_timer();
                    break;
                default:
                    return; 
            }
        } 
    </script>

    


    <script src='js/jweixin-1.2.0.js'></script>
	<script src='js/theme_common.js'></script> <!-- 音乐控制和微信设置等公共部分js外部引入 -->





</body>
</html>



🏠CSS样式代码


        

        #div_intersect {
            position: relative;
            width: 100%;
            z-index: 666;
            display: none;
            background-repeat: repeat;
            background-size: 100%;
            overflow: hidden;
        }
        #div_is_inner {
            position:absolute;
            top: 0;right: 0;left: 0;bottom: 0; 
            width: 100%;  
            min-height: 160px;
            background: rgba(255,255,255,.85); 
        }



        #canvas_is {
            position: absolute;
            display: block;
            margin: 0 auto;
        }



        .div_is_typed {
            width: 500px;
            position: absolute;
            top: 0;right: 0;left: 0;bottom: 0;             
            z-index: 668;
            -webkit-overflow-scrolling: touch;
            padding: 10%;
            font-size: 1.2em;
            overflow: scroll;
        }
        #div_is_img {
            width: 100%; 
            max-height: 320px;
            object-fit: cover;
            display: none;
            overflow: hidden;
            margin: 0px 0px 15px 0px;
            background-color: white;
            border: 15px solid white;
            border-radius: 3px;
            display: none;
        }
        #div_is_img img {
            width: 100%;
        }



        .div_is_open_bg {
            width: 500px;
            display: block; 
            background-color: rgba(255, 255, 255, 0.85);
            position: fixed;
            z-index: 669;
        }
        .div_is_open_btn {
            width: 100px;
            height: 54px;
            margin: 200px auto;
            background-image: url('../images/open_letter.jpg');
            border-radius:3px;
            overflow:hidden;
            -moz-box-shadow:0px 0px 10px #999; 
            -webkit-box-shadow:0px 0px 10px #999; 
            box-shadow:0px 0px 10px #999;
            animation-name: heartbeat;
            animation-duration: 2000ms;
            animation-timing-function: cubic-bezier(0,0,0,1.74);
            animation-delay: 500ms;
            animation-iteration-count: infinite;
            animation-play-state: running;
        }
        @keyframes heartbeat {
            0% {
                transform: scale(0.95);
            }

            100% {
                transform: scale(0.95);
            }

            50% {
                transform: scale(1);
            }
        }








五、🎁更多源码

1.如果我的博客对你有帮助 请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!

2.💗【👇🏻👇🏻👇🏻🉑关注我| 获取更多源码】 带您学习各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、大学生毕业HTML模板 、等!

📣以上内容技术相关问题💌欢迎一起交流学习👇🏻👇🏻👇🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web学生网页设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值