【问题标题】:css transform appears in reverse in mobile browsercss 变换在移动浏览器中反向显示
【发布时间】:2018-11-30 01:50:29
【问题描述】:

以下代码在网络浏览器中正确显示圆圈内的内容。 在移动浏览器中,内容以相反的顺序显示(iphone safari,chrome)

知道如何解决这个问题吗?

https://codepen.io/girish979/pen/gQQzMQ

/**************
 * Basics for this pen from
 * https://tympanus.net/codrops/2012/08/08/circle-hover-effects-with-css-transitions/
 * added support for bootstrap grids. extracted border-radius to use effect on rectangles as well
 */

/*
 * separate class for round elements
 */
.do-circle {
  border-radius: 50%;
}

.do-item {
  width: 100%;
  height: auto;
  position: relative;
}

.do-item-circle {
  max-width: 261px;
}

.do-item-square {
  max-width: 350px;
}

.do-info-wrap {
  position: absolute;
  top: 20px;
  left: 20px;
  width: calc(100% - 40px);
  height: calc(100% - 40px);
  transition: all 0.4s ease-in-out;
  perspective: 800px;
  box-shadow: 0 0 0 20px rgba(255, 255, 255, 0.2), inset 0 0 3px rgba(115, 114, 115, 0.2);
}

.do-info {
  position: absolute;
  width: 100%;
  height: 100%;
  transition: all 0.4s ease-in-out;
  transform-style: preserve-3d;
}

.do-info > div {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

.do-info .do-info-back {
  transform: rotate3d(0, 1, 0, 180deg);
  -webkit-transform:rotate3d(0, 1, 0, 180deg);
  background: #000;
}

.do-info h3 {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 14px;
  margin: 0 15px;
  padding: 40px 0 0 0;
  height: 90px;
  font-family: 'Open Sans', Arial, sans-serif;
  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.do-info-back {
  text-align: center;
}

.do-info-back > div {
  color: #fff;
  padding: 10px 5px;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid #fff;
}

.do-item:hover .do-info-wrap {
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.8), inset 0 0 3px rgba(255, 255, 255, 0.8);
}

.do-item:hover .do-info {
  transform: rotate3d(0, 1, 0, -180deg);
  -webkit-transform: rotate3d(0, 1, 0, -180deg);
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">

  <div class="row">
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>

  </div>
  <div class="col-sm-4">
    <div class="do-item">
      <img src="http://placehold.it/350x250" class="do-item">
      <div class="do-info-wrap">
        <div class="do-info">
          <div class="do-info-front"></div>
          <div class="do-info-back">
            <h3>Max Mustermann (43)</h3>
            <div>Mönchaltdorf
              <br /> Beruf / Funktion</div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-4">
    </div>
    <div class="col-sm-4">
    </div>
  </div>

【问题讨论】:

  • 能否请您澄清一下逆​​序。除了圆圈不再在移动设备上排成一排之外,我没有看到内容顺序的反转。
  • 将图片添加到帖子i.stack.imgur.com/ueDpc.png
  • @gggg 我已经在下面提供了答案,您的问题得到解决了吗?

标签: css


【解决方案1】:

.do-info-wrap.do-info 类添加opacity:0 值并在悬停时更改opacity:1 的值可以解决问题。

/**************
 * Basics for this pen from
 * https://tympanus.net/codrops/2012/08/08/circle-hover-effects-with-css-transitions/
 * added support for bootstrap grids. extracted border-radius to use effect on rectangles as well
 */

/*
 * separate class for round elements
 */
.do-circle {
  border-radius: 50%;
}

.do-item {
  width: 100%;
  height: auto;
  position: relative;
}

.do-item-circle {
  max-width: 261px;
}

.do-item-square {
  max-width: 350px;
}

.do-info-wrap {
  position: absolute;
  top: 20px;
  left: 20px;
  width: calc(100% - 40px);
  height: calc(100% - 40px);
  transition: all 0.4s ease-in-out;
  perspective: 800px;
  box-shadow: 0 0 0 20px rgba(255, 255, 255, 0.2), inset 0 0 3px rgba(115, 114, 115, 0.2);
  opacity:0;
}

.do-info {
  position: absolute;
  width: 100%;
  height: 100%;
  transition: all 0.4s ease-in-out;
  transform-style: preserve-3d;
opactiy:0;
}

.do-info > div {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

.do-info .do-info-back {
  display: inline-block;
  transform: rotate3d(0, 1, 0, 180deg);
  -webkit-transform: rotate3d(0, 1, 0, -180deg);
			-ms-transform: rotate3d(0, 1, 0, -180deg);
			-moz-transform: rotate3d(0, 1, 0, -180deg);
			-o-transform: rotate3d(0, 1, 0, -180deg);
  background: #000;

}

.do-info h3 {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 14px;
  margin: 0 15px;
  padding: 40px 0 0 0;
  height: 90px;
  font-family: 'Open Sans', Arial, sans-serif;
  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.do-info-back {
  text-align: center;
}

.do-info-back > div {
  color: #fff;
  padding: 10px 5px;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid #fff;
}

.do-item:hover .do-info-wrap {
    opacity:1;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.8), inset 0 0 3px rgba(255, 255, 255, 0.8);
}

.do-item:hover .do-info {
  opacity:1;
  display: block;
  transform: rotate3d(0, 1, 0, -180deg);
  -webkit-transform: rotate3d(0, 1, 0, -180deg);
			-ms-transform: rotate3d(0, 1, 0, -180deg);
			-moz-transform: rotate3d(0, 1, 0, -180deg);
			-o-transform: rotate3d(0, 1, 0, -180deg);
}
<div class="container">

  <div class="row">
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-3">
      <div class="do-item do-item-circle do-circle">
        <img src="http://placehold.it/261x261" class="do-item do-circle">
        <div class="do-info-wrap do-circle">
          <div class="do-info">
            <div class="do-info-front do-circle"></div>
            <div class="do-info-back do-circle">
              <h3>Max Mustermann (43)</h3>
              <div>Mönchaltdorf
                <br /> Beruf / Funktion</div>
            </div>
          </div>
        </div>
      </div>
    </div>

  </div>
  <div class="col-sm-4">
    <div class="do-item">
      <img src="http://placehold.it/350x250" class="do-item">
      <div class="do-info-wrap">
        <div class="do-info">
          <div class="do-info-front"></div>
          <div class="do-info-back">
            <h3>Max Mustermann (43)</h3>
            <div>Mönchaltdorf
              <br /> Beruf / Funktion</div>
          </div>
        </div>
      </div>
    </div>
    <div class="col-sm-4">
    </div>
    <div class="col-sm-4">
    </div>
  </div>

请注意,与网络浏览器相比,:hover 在移动(触摸)设备中可能无法正常工作。也许您可以单独为移动设备提供更好的体验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-19
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多