用js减去div宽度的一半

Substract half of div width with js

我是 JS 的新手,我在执行一个简单的操作时遇到了问题:

第一个 div 是 50% 宽度

我希望使用 JS 从其宽度中减去秒的 50% div。

会像:

a_div width = 50% - ( 50% width of b_div)

我已经试过了,但没用

$(document).ready(function(){
    $("#h-prev").css({'width':($(".swiper-slide-prev").innerWidth())}).css('width:'-$(".swiper-slide-prev").width() * .50);
    });

父元素宽度除以2减去其他元素宽度除以2

var $el = $("#h-prev"),
    parentWidth = $el.parent().width(),
    otherWidth = $(".swiper-slide-prev").width(),
    newWidth =(parentWidth/2) - (otherWidth/2)

$el.width( newWidth );

我不知道这是否正是您要找的,但我已经用简单的语言编写了这个演示 javascript:https://jsfiddle.net/tubL1qxr/2/

var a = document.getElementById('a'), // element a
    b = document.getElementById('b'), // element b
  h = document.getElementById('h'); // button

h.addEventListener('click', changeSize);

function changeSize() {
    a.style.width = ((window.innerWidth / 100 *50) - (b.offsetWidth /100*50)) + 'px';
}

很明显,您必须修改它以适合您的代码。

这需要第一个和第二个 div 的宽度,然后从第一个 div 的宽度中减去第二个 div 的一半宽度(最初是 50% ).

你是这个意思吗:

$(document).ready(function(){
  var secondDivWidth = parseInt($('#second-div').css('width'));
  var firstDivWidth = parseInt($('#first-div').css('width')); 
  $('#first-div').css('width', firstDivWidth - secondDivWidth/2);
  
  // Example purposes only
  console.log("Width before change (50%): " + firstDivWidth);
  console.log("Width after change: " + $('#first-div').css('width'));
   
})
#first-div {
  border: black solid 1px;
  height: 100px;
  width:50%;
}

#second-div {
  border: red solid 1px;
  height: 100px;
  width: 400px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="first-div">

</div>
<div id="second-div">
    
</div>

您有语法错误:

jQuery css() 函数以两种方式工作,接受对象或 2 个参数:

  • 1) css('attr', 值)
  • 2) css({'attr':值})
  • 因此您可以更正此 'width:' 并输入此 'width': 并输入 {} 结果如下:

    $(document).ready(function() {
        $("#h-prev").css({
            'width': ($(".swiper-slide-prev").innerWidth())
        }).css({'width':- $(".swiper-slide-prev").width() * .50});
    });
    

    如果只提供一个参数,您可以使用第二个选项,代码如下

        $(document).ready(function() {
        $("#h-prev").css('width', ($(".swiper-slide-prev").innerWidth())).css('width', -$(".swiper-slide-prev").width() * .50);
    });
    

    现在语法是正确的,如果您将带有片段的代码放在这里,我将能够帮助您实现功能。