Hide Telegram Sidebar

Hide the sidebar in Telegram Web version,隐藏网页端telegram(电报)的侧边栏

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @license MIT
// @name         Hide Telegram Sidebar
// @name:zh-CN   隐藏telegram(电报)侧边栏
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Hide the sidebar in Telegram Web version,隐藏网页端telegram(电报)的侧边栏
// @author        Mike
// @match        https://web.telegram.org/a/*
// @match        https://web.telegram.org/k/*
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    // 定义一个函数来创建并定位图标
    function createAndPositionIcon() {
        // 检查目标div是否存在
        var targetDiv = document.getElementById('LeftColumn');
        if (!targetDiv) {
            return; // 如果目标div不存在,则不执行任何操作
            console.error("获取",targetDiv,"失败")
        }

        // 创建图标元素,使用"X"作为图标
        var icon = document.createElement('div');
        icon.textContent = '<'; // 使用字母"<"作为图标
        icon.style.fontSize = '30px'; // 设置小于号的字体大小
        icon.style.position = 'absolute'; // 绝对定位
        icon.style.top = '50%'; // 垂直居中对齐
        icon.style.left = '0px';  // 将图标放置在目标div的右侧外面
        //icon.style.transform = 'translate(0, -50%)'; // 垂直居中对齐
        icon.style.width = '30px'; // 宽度
        icon.style.height = '60px'; // 高度
        icon.style.backgroundColor = 'grey'; // 背景颜色
        icon.style.color = 'white'; // 文本颜色
        icon.style.borderRadius = '0 50px 50px 0'; // 创建右半圆形状
        icon.style.boxShadow = '2px 2px 5px rgba(0, 0, 0, 0.3)'; // 阴影效果
        icon.style.zIndex = '999999'; // 确保图标在最上层
        icon.style.textAlign = 'center'; // 文本居中对齐
        icon.style.lineHeight = '60px'; // 行高与图标的高度相同,确保文本垂直居中

        // 添加点击事件
        icon.addEventListener('click', function() {
            // 在这里执行点击图标后的操作
          var divMain = document.getElementById('Main');
          var divLeftColumn = document.getElementById('LeftColumn');
          var divMiddleColumn = document.getElementById('MiddleColumn');
          divMain.style.display = divMain.style.display === '' ? 'flex' : '';
          divMain.style.width = divMain.style.display === 'flex' ? '100vw' : '';
          divMain.style.height = divMain.style.height === '100vh' ? '' : '100vh';
          divLeftColumn.style.display = divLeftColumn.style.display === 'none' ? '' : 'none';
          divMiddleColumn.style.flexGrow = divMiddleColumn.style.flexGrow === '1' ? '' : '1';
          icon.textContent = icon.textContent === '<' ? '>' : '<';



        });

        // 将图标添加到目标div的父元素
        var divMiddleColumn = document.getElementById('MiddleColumn');
    divMiddleColumn.style.position = 'relative';// 设置目标div的定位为相对定位,以便图标的绝对定位有参照
    divMiddleColumn.appendChild(icon);// 将图标添加到目标div



    }

    // 使用MutationObserver监听DOM变化
    var observer = new MutationObserver(function(mutations) {
        // 如果目标div出现,创建并定位图标
        if (document.getElementById('LeftColumn')) {
            createAndPositionIcon();
            observer.disconnect(); // 目标div出现后停止观察
        }
    });

    // 开始观察body元素的变化
    observer.observe(document.body, { childList: true, subtree: true });


    // 立即检查一次,以防目标div已经存在
    //createAndPositionIcon();
})();