H5特效模仿微信说话语音代码

<style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        
        html, body {
            background: #fff;
        }
        
        .btn {
            position: fixed;
            bottom: 0;
            width: 100%;
            height: 60px;
            background: #eee;
        }
        
        .btn input {
            width: 100%;
            height: 100%;
            font: 20px/60px 'microsoft yahei';
        }
        
        .blackBoxSpeak {
            width: 176px;
            height: 176px;
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            background: url("./ic_record@2x.png") no-repeat 28px 16px/65px 104px,
            url("./ic_record_ripple@2x-9.png") no-repeat 111.2px 32px/28.8px 88px;
            
            background: rgba(0, 0, 0, .7);
            display: none;
            border-radius: 12px;
        }
        
        .blackBoxSpeakConent {
            font: 14.4px '微软雅黑 Light';
            position: absolute;
            left: 0;
            right: 0;
            bottom: 12px;
            display: block;
            text-align: center;
            width: 90%;
            padding: 8px 0;
            margin: auto;
            color: #ffffff;
            font-weight: 200;
            border-radius: 4px;
        }
        
        .blackBoxPause {
            width: 176px;
            height: 176px;
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            background: url("./ic_record@2x.png") no-repeat 28px 16px/65px 104px,
            url("./ic_record_ripple@2x-9.png") no-repeat 111.2px 32px/28.8px 88px;
            
            background: rgba(0, 0, 0, .7);
            display: none;
            border-radius: 12px;
        }
        
        .blackBoxPauseContent {
            font: 14.4px '微软雅黑 Light';
            position: absolute;
            left: 0;
            right: 0;
            bottom: 12px;
            display: block;
            text-align: center;
            width: 90%;
            padding: 8px 0;
            margin: auto;
            color: #ffffff;
            font-weight: 200;
            border-radius: 4px;
        }
    </style>
</head>
<body>
 
<h3>只支持移动端预览</h3>
<!-- 底部按住说话按钮 -->
<div class="btn">
    <input type="button" id="bt_recoding" value="按住 说话">
</div>
 
<!-- 中间黑框 录音状态 -->
<div class="blackBoxSpeak">
    <p class="blackBoxSpeakConent">手指上划,取消发送</p>
</div>
 
<!-- 中间黑框 暂停状态 -->
<div class="blackBoxPause">
    <p class="blackBoxPauseContent" style="background: red">松开手指, 取消发送</p>
</div>
</body>
</html>
 
 
<script type="text/javascript">
    //录音按钮
    var bt_recoding = document.getElementById("bt_recoding");
 
    //中间黑色边框和里面的内容(录音状态)
    var blackBoxSpeak = document.querySelector(".blackBoxSpeak");
    blackBoxSpeak.style.background = "url('./ic_record@2x.png')no-repeat 28 16px/65px 104px, url('./ic_record_ripple@2x-9.png')no-repeat 111.2px 32px/28.8px 88px";
    blackBoxSpeak.style.backgroundColor = "rgba(0,0,0,.7)";
 
    //中间黑色边框和里面的内容(暂停状态)
    var blackBoxPause = document.querySelector(".blackBoxPause");
    blackBoxPause.style.background = "rgba(0,0,0,.7) url('ic_release_to_cancel@2x.png')no-repeat center 8px/67.2px 104px";
    blackBoxPause.style.backgroundColor = "rgba(0,0,0,.7)";
 
    //手指移动相关
    var posStart = 0;//初始化起点坐标
    var posEnd = 0;//初始化终点坐标
    var posMove = 0;//初始化滑动坐标
 
    //轮播相关
    var index = [9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var num = index.length;
    var timer = null; //用于清除计时器
 
    //直接开启轮播模式
    setTimer();
 
    function initEvent() {
        bt_recoding.addEventListener("touchstart", function (event) {
            event.preventDefault();//阻止浏览器默认行为
            posStart = 0;
            posStart = event.touches[0].pageY;//获取起点坐标
 
            //显示录音 隐藏暂停
            showBlackBoxSpeak();
        });
        bt_recoding.addEventListener("touchmove", function (event) {
            event.preventDefault();//阻止浏览器默认行为
 
            posMove = event.targetTouches[0].pageY;//获取滑动实时坐标
            if (posStart - posMove < 200) {
                //隐藏录音 显示暂停
                showBlackBoxSpeak();
            } else {
                //显示录音 隐藏暂停
                showBlackBoxPause();
            }
        });
        bt_recoding.addEventListener("touchend", function (event) {
            event.preventDefault(); //阻止浏览器默认行为
            posEnd = 0;
            posEnd = event.changedTouches[0].pageY;//获取终点坐标
 
            //初始化状态
            initStatus();
 
            if (posStart - posEnd < 200) {
                alert("发送成功");
                showBlackBoxNone();
            } else {
                alert("取消发送");
                showBlackBoxNone();
            }
        });
    }
 
    initEvent();
 
    //轮播
    function setTimer() {
        timer = setInterval(function () {
            setTimeout(function () {
                num++;
                blackBoxSpeak.style.background = "url('./ic_record@2x.png')no-repeat 28px 16px/64px 104px, url('./ic_record_ripple@2x-" + index[num] + ".png')no-repeat 111.2px 32px/28.8px 88px";
                blackBoxSpeak.style.backgroundColor = " rgba(0,0,0,.7)";
            }, 70);
            if (num >= index.length - 1) {
                num = 0;
            }
        }, 70);
    }
 
    //初始化状态
    var initStatus = function () {
        bt_recoding.value = '按住 说话';
 
        //全部隐藏
        showBlackBoxNone();
    }
 
    //显示录音 隐藏暂停
    var showBlackBoxSpeak = function () {
        bt_recoding.value = '松开 结束';
        blackBoxSpeak.style.display = "block";
        blackBoxPause.style.display = "none";
    }
 
    //隐藏录音 显示暂停
    var showBlackBoxPause = function () {
        bt_recoding.value = '松开手指,取消发送';
        blackBoxSpeak.style.display = "none";
        blackBoxPause.style.display = "block";
    }
 
    //隐藏录音
    var showBlackBoxNone = function () {
        blackBoxSpeak.style.display = "none";
        blackBoxPause.style.display = "none";
    }
</script>

转载:https://blog.csdn.net/yugua3837/article/details/86755405?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-1.nonecas

### 回答1: 要实现从H5页面跳转到微信小程序,需要在H5页面中使用微信JS-SDK中的wx.miniProgram.navigateTo函数。 首先,需要在H5页面中引入微信JS-SDK。在页面头部加入以下代码: ``` <script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script> ``` 然后,在页面中调用微信JS-SDK中的wx.miniProgram.navigateTo函数。例如: ``` <button onclick="gotoMiniProgram()">跳转到小程序</button> <script> function gotoMiniProgram() { wx.miniProgram.navigateTo({ url: '/pages/index/index' }) } </script> ``` 其中,url参数为要跳转的小程序页面路径。 注意,要想成功跳转到小程序,需要确保两者都是同一个微信平台的应用。另外,在微信公众平台中配置JS接口安全域名,才能使用微信JS-SDK。 综上所述,实现H5页面跳转到微信小程序需要引入微信JS-SDK,并调用wx.miniProgram.navigateTo函数,注意确保两者都是同一开平台应用并配置好JS接口安全域名。 ### 回答2: H5页面跳转到微信小程序需要先打开微信浏览器,然后通过微信JS-SDK的接口实现,具体的步骤如下: 1. 确保H5页面已经集成了微信JS-SDK,并正确配置了appid、noncestr、timestamp和signature参数。 2. 在H5页面中,可以使用javascript代码实现微信小程序的跳转功能。首先,需要引入微信JS-SDK库文件: <script src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script> 3. 接下来,需要使用wx.miniProgram.navigateTo() 接口来发起微信小程序的跳转,代码如下: wx.miniProgram.navigateTo({ url: '/pages/index/index', // 要跳转到的小程序页面的路径,必须是相对路径,以 / 开头 success(res) { console.log(res) } }) 4. 在跳转成功后,可以根据需要执行相应的操作。例如,可以在H5页面中添加以下代码,让跳转成功后的弹窗提醒用户: wx.miniProgram.navigateTo({ url: '/pages/index/index', success(res) { alert('跳转到小程序成功!') } }) 总之,要让H5页面能够跳转到微信小程序,需要通过微信JS-SDK的接口来实现。首先要确保H5页面已经正确配置了JS-SDK参数,并引入了微信JS-SDK库文件。然后,使用wx.miniProgram.navigateTo() 接口来发起微信小程序的跳转,在跳转成功后可以根据需要执行相应的操作。 ### 回答3: H5页面和微信小程序是两种不同的应用场景,H5页面是通过浏览器访问的,而微信小程序是在微信客户端中运行的应用程序。因此,H5跳转至微信小程序需要使用一些特定的代码实现。 如果您需要将H5页面中的某个链接跳转至微信小程序,可以使用以下代码: ```javascript // 执行微信小程序的API,打开指定页面 wx.miniProgram.navigateTo({ url: '/pages/index/index' }) ``` 在此代码中,`wx.miniProgram.navigateTo`是微信小程序的API,用于打开小程序中的指定页面。`url`参数指定了小程序中的页面路径,可以通过在微信小程序的开发工具中查找页面路径来获取。 如果您需要在H5页面中嵌入一个微信小程序,则需要使用小程序的`<web-view>`组件。该组件可以在小程序中用来加载指定的H5页面。 以下是将H5页面嵌入微信小程序的代码: ```html <web-view src="https://example.com"></web-view> ``` 在此代码中,`src`属性指定了要在小程序中加载的H5页面的URL地址。您可以将此地址替换为您要嵌入的H5页面的地址。 总之,H5跳转至微信小程序需要使用特定的代码实现,具体实现方法取决于具体的应用场景。为了确保代码能够正确实现,建议先了解微信小程序和小程序开发的相关知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值