HTML5仿微信聊天界面和朋友圈代码


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

/* ――聊天编辑器区域 */

var $editor = $(".J__editorText"), editor = $editor[0];

var $face = $(".emotion-area dd img");

$face.on("click", function(e){

    if($(this).hasClass("face")){ //图像

        var img = $(this)[0].cloneNode(true);

        editor.focus();

        setTimeout(function(){

            var range, node;

            if(document.selection && document.selection.createRange){

                document.selection.createRange().pasteHTML(img);

            }else if(window.getSelection && window.getSelection().getRangeAt){

                range = window.getSelection().getRangeAt(0);

                range.insertNode(img);

                range.collapse(false);

                var sel = window.getSelection();

                sel.removeAllRanges();

                sel.addRange(range);

            }

        }, 16);

    }else if($(this).hasClass("del")){ //删除

        editor.focus();

        range = window.getSelection().getRangeAt(0);

        range.collapse(false);

        var sel = window.getSelection();

        sel.removeAllRanges();

        sel.addRange(range);

        document.execCommand("delete");

    }

});

//...格式化编辑器包含标签

editor.addEventListener("focus", function(evt) {

    surrounds()

}, true);

editor.addEventListener("input", function(evt) {

    surrounds();

}, false);

function surrounds() {

    setTimeout(function () { //chrome

        var sel = window.getSelection();

        var anchorNode = sel.anchorNode;

        if (!anchorNode) return;

        if (sel.anchorNode === editor ||

            (sel.anchorNode.nodeType === 3 && sel.anchorNode.parentNode === editor)) {

            var range = sel.getRangeAt(0);

            var p = document.createElement("p");

            range.surroundContents(p);

            range.selectNodeContents(p);

            range.insertNode(document.createElement("br")); //chrome

            sel.collapse(p, 0);

            (function clearBr() {

                var elems = [].slice.call(editor.children);

                for (var i = 0, len = elems.length; i < len; i++) {

                    var el = elems[i];

                    if (el.tagName.toLowerCase() == "br") {

                        editor.removeChild(el);

                    }

                }

                elems.length = 0;

            })();

        }

    }, 0);

}

//...滚动到聊天内容底部

function scrollToBottom(){

    $('.ws__chatMsg-panel').animate({scrollTop: $("#J__chatMsgList").height()}, 300);

}

运行效果:

相关推荐:

AngularJS仿微信图片手势缩放代码

jquery仿微信聊天界面实例分享

实例讲解CSS3仿微信聊天气泡的方法

以上就是HTML5仿微信聊天界面和朋友圈代码的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

用canvas实现简单的下雪效果(附代码)

HTML5 source标签怎么用?HTML5 source标签属性介绍

页面性能优化的方法总结

HTML5的63行代码实现贪吃蛇游戏

详解HTML5移动端音频与视频问题及解决方案

移动端h5轮播插件swipe实例详解

HTML5如何实现简单进度条效果?动态进度条的实现(代码示例)

微信的h5页面调用第三方位置导航

h5的块级标签汇总

HTML5/css3 网页加载进度条的实现,下载进度条等经典案例

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...